Robotrontechnik-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Mitglieder || Home || Statistik || Kalender || Admins Willkommen Gast! RSS

Robotrontechnik-Forum » Sonstiges » Textdateien sind auch nicht mehr das, was sie früher mal waren... » Themenansicht

Autor Thread - Seiten: -1-
000
27.01.2016, 20:05 Uhr
Micha

Avatar von Micha

Vielleicht weiß das hier ja schon fast jeder außer mir. Ich bin heute erst drüber gestolpert.
Früher war eine reine Textdatei eben genau das: Nur Textzeichen. Früher war sowieso alles besser...
Naja, oder zumindest überschaubarer. Der Zeichensatz stand für ein bestimmtes System eben implizit fest. Wenn eine Textdatei mit dem Buchstaben A begann, konnte man ziemlich sicher sein daß das erste Byte jener Textdatei (im Fall von ASCII) eben auch ein 0x41 war.
Heute gibts ASCII, ANSI, UTF-8 und sonstnochwas für Zeichensätze. Und da stimmt es dann womöglich nicht mehr ganz daß eine Textdatei wirklich nur Text ist. Am Anfang könnte sich paar Byte eingenistet haben die den Zeichensatz definieren:

https://en.wikipedia.org/wiki/Byte_order_mark

Macht beim zweiten drüber Nachdenken Sinn, anders geht so eine Babylonische Vielfalt ja auch garnicht. Aber wenn man so eine Textdatei nichtsahnend von einem simplen Ur-Computer einliest, der davon ausgeht, daß das erste Zeichen auch der erste interpretierbare Buchstabe ist, kann das ganz schön in die Hose gehen...
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
27.01.2016, 20:31 Uhr
Guido
Default Group and Edit
Avatar von Guido

Tja, früher waren Pferde nur zum Reiten oder zum Wagenziehen gedacht. Heute gibt es Zirkuspferde, Sportpferde, Showpferde, Bumentopferde....

Spann mal einen Galopper vor Deinen Karren, das geht auch schief

Guido
--
Der Mensch hat drei Wege, klug zu handeln.
Erstens durch Nachdenken: Das ist der edelste.
Zweitens durch Nachahmen: Das ist der leichteste.
Drittens durch Erfahrung: Das ist der bitterste.
Konfuzius

Wer immun gegen ein Minimum an Aluminium ist, der hat eine Aluminiumminimumimmunitität.

Dieser Beitrag wurde am 27.01.2016 um 20:32 Uhr von Guido editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
27.01.2016, 20:39 Uhr
Mobby5




Zitat:
Micha schrieb

Heute gibts ASCII, ANSI, UTF-8 und sonstnochwas für Zeichensätze.




Bring da mal nix durcheinander. ANSI und UTF-8 sind Codierungen für diverse Steuercodes bzw. Kommandos für die Darstellung von Text oder auch Grafiken entsprechender Editoren oder Viewer, also kein Text. Die zugehörigen Texte bestehen im allgemeinen (bis auf wenige Sonderfälle) aus ASCII-Code.

Das sind auch alles keine Zeichensätzr. Der Zeichensatz definiert die grafische Darstellung der Zeichen, nicht deren Bedeutung. Damit z. Bsp. der Code für das 'A' auf dem Bildschirm oder Drucker auch wie ein 'A' aussieht.
--
und ausserdem muss in Zeile 20 der Doppelpunkt durch ein Semikolon ersetzt werden
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
27.01.2016, 20:40 Uhr
Enrico
Default Group and Edit


... und zum Essen.


Es gibt aber nicht nur ASCII, auch EBCDIC.
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
27.01.2016, 20:47 Uhr
Yogi64



nun geht es aber an das eingemachte *sfg*
--
Wo wir stehen ist vorn - Und wenn wir hinten stehen, ist hinten vorn :-)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
27.01.2016, 21:08 Uhr
Rolli



Hallo Micha,
wie eine Textdatei aussieht hängt allein vom Programm ab, das diese Datei erzeugt hat. Da gibt es einfache und sehr leistungsfähige. Du kannst auch heute noch mit einem einfachen Editor eine Datei erzeugen, die nur aus lesbaren Zeichen besteht, wenn du mal von CR und LF absiehst, die sich auch da schon unter die lesbaren Zeichen gemogelt haben.

Gruß Rolf
--
Wer Phantasie hat, ist noch lange kein Phantast
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
27.01.2016, 21:16 Uhr
holm

Avatar von holm

Dann gibts noch die Microsoft Formate (Hi hallo ich bins!) die noch Informationen über den Urschleim und das Gewicht Deiner Großmutter und deren Einkaufspreise enthalten. Gleichzeitig haben diese Programme über viele Releases die Eigenschaft beibehalten können jeden Schriftsetzer in Entsetzen ob des grausamen Druckbildes zu versetzen..

SCNR,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
27.01.2016, 22:03 Uhr
Rolli



Du hast doch nicht etwa was gegen Microsoft?!
--
Wer Phantasie hat, ist noch lange kein Phantast
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
27.01.2016, 22:13 Uhr
holm

Avatar von holm

...ach wo...(Finger über Kreuz).

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
009
27.01.2016, 22:13 Uhr
ggrohmann



Bedauerlicherweise







nix wirksames.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
010
28.01.2016, 09:09 Uhr
ROBOTROONIE



Holm - man muss es den Forensikern und selbsternannten Experten doch etwas leichter machen.

Erinnere mich an einen TV-Beitrag vor Jahren, wo so ein Experte von Popup-Blockern abriet (Banking geht ja dann nicht mehr) und empfahl, bei zu vielen Popups in der Taskleiste mit Rechtsklick auf die Browser-Tab-Gruppe "Programmgruppe schließen" auszuwählen.
--
- Meine Posts werden zu 100% aus recycelten Bits erstellt -
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
011
28.01.2016, 10:14 Uhr
kaiOr

Avatar von kaiOr

Eindeutig ein "L" zuviel in holms Signatur.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
012
28.01.2016, 10:27 Uhr
holm

Avatar von holm

@ROBOTRONIE:

Solche Eggschberde kenne ich ausreichend. Das Problem von denen ist, das sie in einer Kaffeetasse sitzen und nicht auf einem flachen Teller was sich stark auf deren Horizont auswirkt.

@KaiOr:
...globsch ni.

Ich habe mit "L"s nix am Hut.

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}

Dieser Beitrag wurde am 28.01.2016 um 10:29 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
013
28.01.2016, 12:01 Uhr
Micha

Avatar von Micha

Keine Ahnung ob ihr mich meint... das Posting in 000 ist zugegebenermaßen ohne Illustration mißverständlich. Ich wollte ganz bestimmt nicht in die Richtung diskutieren, daß eine Microsoft Word Datei ja nicht in meinen simplen Text-Editor lädt. Daß Formate wie MS-Word's .doc alles mögliche verwursten, war mir schon klar.

Meine Perspektive war die des Programmierers: für Quelltexte braucht man bis heute meistens immer noch nur die 7-Bit-Teilmenge des ASCII Zeichensatzes, ohne Codepage, ohne Ove Sprogø, ohne Norton Commander Kanten, ohne 'German Umlauts' ;-)

@Mobby5: tut mir leid, wenn ich immer noch Zeichensatz sage. Begriffe wie Zeichensatz, Kodierung, Schriftart, Schriftschnitt usw. haben im Laufe der Jahre gelegentlich gewechselt. Es braucht nur wenig guten Willen um zu verstehen was jemand meint, der vom ASCII-Zeichensatz spricht, auch wenn es vielleicht nicht ganz korrekt ist.Der Begriff "ASCII Zeichensatz" ist so gebräuchlich - nur ganz hartgesottene Klugscheißer werden sich dem Verständnis bewußt entziehen was gemeint ist. Mir ist schon bewußt: bei 80er Jahre Computern klebte auf dem entsprechenden EPROM öfters ein Zettel: ZS-ROM. Aber meint "Zeichensatz" wirklich den Pixel-Bitmuster-Kram? Meine Ehre würde ich nicht dafür verwetten mögen.

Ich hoffe das angehängte Bild illustriert, was ich wirklich sagen wollte. Wenn man sich mit einem in C geschriebenen Programm, das eine Textdatei char für char einliest darauf verlässt, daß eine reine Textdatei ab dem ersten Byte aus Text besteht, kann man ggf. Schiffbruch erleiden. Ich hab ne Weile dran gerätselt, warum meine (wie in Fortran) positionsfixierte Datei immer die erste Zeile vermurkst hat - bis ich mir die 'reine' Textdatei dann mal in HxD angeschaut hab.

Gibt übrigens Editoren, die auch beim Speichern in UTF-8 intelligent genug sind den UTF-8 Vorspann wegzulassen, wenn im Text nur die ASCII Teilmenge an Zeichen verwendet wird. Nur verlassen sollte man sich da nicht drauf...


Dieser Beitrag wurde am 28.01.2016 um 13:05 Uhr von Micha editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
014
28.01.2016, 14:10 Uhr
holm

Avatar von holm

Du mußt Deine Spezifikation von "reine Textdatei" offensichtlich mal ändern.

Unter Unixen gibt es zum herausfinden eines Dateitypes den "magic" Mechanismus (man magic, man 5 magic) der genau nach führenden Typdefinitionen bzw. anderen Merkmalen von Dateien schaut um herauszufinden um was es sich handelt. Das bekommt man dann mit dem Kommande "file <fragliche datei>" serviert. Das Zeug ist weit entfernt von "perfekt" aber immer noch Lichtjahre weiter als .txt. com .bat......jpg.exe ..jpg.zip. oder .bkavirus (nein, ich kanns nicht lassen!)

Allerdings hat die Verwendung von UTF-8 auf meinem FreeBSD10 System auch so seine Eier,
z.B. beim Editierten von iso8859-1 Dateien habe ich mir diese schon ab und an versaut weil der VI meint das er irgendwas nicht kann und die Datei abgeschnitten wurde ..(gehts noch? dem Erfinder dieses Verfahrens muß ich bG mal ins Gesicht spucken).

...da unter Windows Programme machen was sie denken was man meinen könnte und dabei oft irren, mache ich standardmäßig dort Textdateien mit gvim auf. Da bekomme ich wenigstens einen Eindruck davon um was es sich handelt.

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}

Dieser Beitrag wurde am 28.01.2016 um 14:12 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
015
28.01.2016, 14:37 Uhr
ggrohmann



Ich muß mal klugscheißen. Du unterscheidest Unicode und UTF-8 - das ist falsch. UTF-8 ist ein Speicherformat für Unicode! Das was du da unter Unicode präsentiert hast, ist nämlich UFT-16, ein weiteres Speicherformat für Unicode-Zeichen. Das liegt daran, daß die Eggsberden(tm) von Microsoft mal wieder nicht verstanden haben, was Unicode, UTF-8 und UTF 16 sind und (wiedermal) saublöde Begifflichkeiten benutzen.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
016
28.01.2016, 19:27 Uhr
Gerhard



@Micha (zu Deinem Beispiel 4)

Selber schuld, würde ich gehässigerweise sagen.
Was haben diese 2 oder 3 Bytes überhaupt in einem reinen Lateinschrift-Text, wie diesem K1000-Listing, zu suchen?
Die haben doch nur Sinn in einer Unicode-Datei, die z.B. kyrillische, arabische oder andere exotische Zeichen enthält, die in je 2 oder gar 4 Bytes verschlüsselt weden müssen. Dort markieren sie die Bytefolge (Big-endian oder Little-endian). Da diese Bytes FE und FF lt. Unicode-Standard zu keinem anderen Zweck verwendet werden, kann man sie getrost einfach ausblenden.
Auch in UTF-8 sind sie eigentlich überflüssig.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
017
30.01.2016, 05:48 Uhr
Micha

Avatar von Micha

Stimmt schon. Und es trifft wieder mal der bekannte Spruch zu: "Erkanntes Problem - gelöstes Problem!"
Denn am Ende ist es ganz einfach - alle Bytes verwerfen bei denen Bit 7 gesetzt ist. Und wenn man zusätzlich noch alle Bytes mit dem Wert 0 verwirft, dann geht sogar die 16-Bit Variante (Unicode bzw. UTF-16). Alles wird gut.

Dieser Beitrag wurde am 30.01.2016 um 07:11 Uhr von Micha editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
018
30.01.2016, 07:42 Uhr
Mobby5




Zitat:
Micha schrieb

@Mobby5: tut mir leid, wenn ich immer noch Zeichensatz sage.




Muss es nicht.
--
und ausserdem muss in Zeile 20 der Doppelpunkt durch ein Semikolon ersetzt werden
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: -1-     [ Sonstiges ]  



Robotrontechnik-Forum

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek