Wieviel Spiecherplatz hat ein Zeichen einer Datei?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Vallan
Beiträge: 223
Registriert: 20.01.2006 19:34
Kontaktdaten:

Wieviel Spiecherplatz hat ein Zeichen einer Datei?

Beitrag 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
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von RSBasic »

@Vallan
1 Zeichen = 1 Byte = 8 Bits
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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.
Zuletzt geändert von Kaeru Gaman am 24.07.2007 16:48, insgesamt 1-mal geändert.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag 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.
HemSA
Beiträge: 221
Registriert: 16.10.2005 13:59
Wohnort: Manisa / Türkei
Kontaktdaten:

Beitrag 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.
PB 4.02 (wegen Disphelper), 5.72 (Windows) (x64)
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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$
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag 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
a²+b²=mc²
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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")
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten