Seite 1 von 2

Wieviel Spiecherplatz hat ein Zeichen einer Datei?

Verfasst: 24.07.2007 16:33
von Vallan
Wieviel Spiecherplatz hat ein Zeichen einer normalen txt-Datei eigentlich?

Bin mir relativ sicher das es nicht das klassische char ist. Weiß das zufällig jemand?

orthografie korrigiert - Kaeru fecit

Verfasst: 24.07.2007 16:37
von RSBasic
@Vallan
1 Zeichen = 1 Byte = 8 Bits

Verfasst: 24.07.2007 16:40
von Kaeru Gaman
...wenn die Datei in ANSI gespeichert ist.

bei Unicode natürlich zwei.

> Bin mir relativ sicher das es nicht das klassische char ist.

irrtum. der datentyp Char heißt genau deshalb so.

Verfasst: 24.07.2007 18:00
von Zaphod
Wenn es Unicode ist, kann es trotzdem sein dass ein zeichen nur 1 byte belegt (UTF-8). Allerdings sind auch 2 byte (UTF-16) und 4 byte (UTF-32) möglich. Das hängt also von der Kodierung des Textes ab.

Verfasst: 24.07.2007 18:22
von HemSA
Hallo Vallan,
ein Leerzeichen ist natürlich auch ein Zeichen ( das weisst du bestimmt ), und für den Zeilenumbruch musst du dann auch noch 2 Zeichen pro Zeile hinzuzählen.

Verfasst: 24.07.2007 19:14
von ts-soft
>> für den Zeilenumbruch musst du dann auch noch 2 Zeichen pro Zeile
Nein, Zeilenumbruch = Linefeed = 1 Zeichen

Unter Windows werden meist Linefeed + Carriage Return genommen, das
wären dann 2 Zeichen :mrgreen:

Verfasst: 24.07.2007 19:20
von Kaeru Gaman
ts-soft hat geschrieben:>> für den Zeilenumbruch musst du dann auch noch 2 Zeichen pro Zeile
Nein, Zeilenumbruch = Linefeed = 1 Zeichen

Unter Windows werden meist Linefeed + Carriage Return genommen, das
wären dann 2 Zeichen :mrgreen:
wenn wir schon läuse knacken:

meistens wird Carriage Return + Linefeed benutzt.
Chr(13)+Chr(10), in dieser reihenfolge.

..in PB stehen übrigens alle versionen als konstanten zur verfügung:
#CR$, #LF$, #CRLF$, #LFCR$

Verfasst: 24.07.2007 19:52
von Kiffi
Kaeru Gaman hat geschrieben:..in PB stehen übrigens alle versionen als konstanten zur verfügung:
[...] #CRLF$, #LFCR$
weil es im Prinzip egal ist, ob zuerst der Wagen zurückläuft oder die Zeile
umgebrochen wird. :mrgreen:

Grüße ... Kiffi

Verfasst: 24.07.2007 20:10
von Kaeru Gaman
jain.

wenn ein programm nach zeilenumbrüchen sucht, ist es unter umständen sehr spezifisch,
erkennt also nur entweder #CRLF$ oder #LFCR$.

...der windows message-requester ist überraschend flexibel:

Code: Alles auswählen

test$ = #CRLF$
MessageRequester("zeilenumbruch #CRLF$","Dies"+test$+"ist"+test$+"ein"+test$+"Test")

test$ = #LFCR$
MessageRequester("zeilenumbruch #LFCR$","Dies"+test$+"ist"+test$+"ein"+test$+"Test")

test$ = #LF$
MessageRequester("zeilenumbruch #LF$","Dies"+test$+"ist"+test$+"ein"+test$+"Test")

test$ = #CR$
MessageRequester("zeilenumbruch #CR$","Dies"+test$+"ist"+test$+"ein"+test$+"Test")

Verfasst: 24.07.2007 20:20
von ts-soft
In meinem Posting steht nichts davon, das die Reihenfolge eine Bedeutung
hat, nur das diese beiden meist verwendet werden.

Durch umdrehen der Reihenfolge wäre die eigentliche Aussage, das LineFeed
nur ein Zeichen ist evtl. untergegangen.

Das ganze hat auch nichts mit Läuse knacken (was ist das? ich hab nämlich
keine :mrgreen: ) nichts zu tun. Ein Autoreifen wiegt auch keine Tonne, nur
weil er an ein Auto montiert ist :mrgreen: