![]() |
Zeilenvorschub
Hi,
ich habe folgendes Problem: Ich möchte einen String in eine Datei schreiben und dann einen Zeilenumbruch bewirken. Was muss ich am untenstehenden Code verändern? mit Text := Text + #10#13 + nächster Text geht das nicht... kann mir da jemand helfen? hier der Code:
Delphi-Quellcode:
Danke schonmal im Voraus für eure Hilfe
var Datei: TFileStream;
Text: String; Count: Integer; begin Text := Edit1.Text; Count := Length(Text); try Text := Text Datei := TFileStream.Create('c:\WinNT\Temp\StreamTest.txt',fmcreate); Datei.WriteBuffer(Text[1], Count); finally Datei.Free; end; [edit=Daniel B]Delphi-Tags korrigiert. Mfg, Daniel B[/edit] |
Re: Zeilenvorschub
Auch einfach einen #13#10 hintersetzen, so rein theoretisch...
Kann es leider im Moment nicht testen, weil ich in der Schule bin... |
Re: Zeilenvorschub
Moin Christian,
die einzige Änderung müsste sein:
Code:
übrigens würde ich eine Variable nie Text nennen, da es diesen Begriff auch als Eigenschaft von Komponenten gibt.
Text := Edit1.Text[color=red]+#13#10[/color];
Am Besten versiehtst Du Variablen mit einem Prefix, der den Typ angibt (z.B. sText : string;), dann siehst Du sofort welchen Typ die Variable hat, und vermeidest viele Konflikt mit eventuell schon verwendeten Bezeichnern. |
Re: Zeilenvorschub
Dankeschön, aber es geht leider noch nicht !
Also ich habe jetzt folgende Änderung vorgenommen:
Delphi-Quellcode:
Ok, an den Präfix hätte ich auch denken müssen. Dennoch: Wenn ich mir die Datei nach dem Ausführen des Codes mit dem Editor Ansehe, gibt es nur eine Zeile - nämlich den Beispieltext aus dem Editfeld. Zeilenvorschub und Text "nächste Zeile" wurden nicht in die Datei geschrieben. Woran das liegt ist mir nicht klar, ihr sagt ja selbst, dass es so gehen müsste. :zwinker:
var Datei: TFileStream;
sBeispiel: String; Count: Integer; begin sBeispiel := Edit1.Text; Count := Length(sBeispiel); try sBeispiel := sBeispiel + #13#10 + 'nächste Zeile'; Datei := TFileStream.Create('c:\WinNT\Temp\StreamTest.txt',fmcreate); Datei.WriteBuffer(sBeispiel[1], Count); finally Datei.Free; end; end; Woran kann es sonst evtl noch liegen? Christian [edit=Daniel B]Delphi-Tags korrigiert. Mfg, Daniel B[/edit] |
Re: Zeilenvorschub
Moin Christian,
erst einmal ein Tip zum überlegen: Wovon hängt es ab, wieviele Zeichen in die Datei geschrieben werden? |
Re: Zeilenvorschub
Uff.. ich bin so dämlich.. ja.. stimmt :wall:
ich sollte die Länge des Textes natürlich erst hinterher bestimmen .... *grummel* und mit sowas behellige ich das Forum.. sorry :cyclops: DANKE! |
Re: Zeilenvorschub
Moin Christian,
bitte, gerne. Zitat:
Das offensichtliche zu übersehen ist bestimmt jedem schon mehrfach passiert. |
Re: Zeilenvorschub
Hoi,
hab mal ne Frage: Warum verwendest du keine ![]() Mit der sollte es um einiges einfacher sein, Strings in eine Datei zu speichern. Kann natürlich sein, dass du aus einem bestimmten Grund den "Umweg" über ein FileStream suchst. Falls du aber nur "stinknormale" Strings speichern willst, würde ich mir mal StringList anschauen. |
Re: Zeilenvorschub
Hallo :-D
Warum ist mein Weg ein "Umweg"? Ist doch eigentlich sehr kurz - find ich :stupid: Wo ich schon beim Fragenstellen bin :arrow: Wie lang darf der obige String eigentlich maximal sein, bevor es zu etwaigen Problemen kommt? :dp: |
Re: Zeilenvorschub
Moin Christian,
Zitat:
|
Re: Zeilenvorschub
Mit 32 Bit gingen 4 GB, da aber mit Integer gearbeitet wird nur 2 GB. (negativer Speicherbereich, wer is'n auf die Idee gekommen)
Bei 64 Bit geht das bald bis 8 EB (Exa-Byte). (natürlich nur, wenn so viel vorhanden ist) Ein großer Teil aktueller Software, darunter auch Delphi 4 ..., kommt schon mit der verkürzten Form (#13) zurecht. #10 = Zeilenvorschub (Cursor auf nächste Zeile) #13 = Wagenrücklauf (Cursor an Zeilenanfang) |
Re: Zeilenvorschub
Moin himitsu,
umgekehrt: #13 = CR = Carriage Return (Wagen Rücklauf) #10 = LF = Line Feed (Zeilenvorschub) Da ein Prozess einen Adressraum von 4GB zugeteilt bekommt, von dem sich aber das OS 2 GB reserviert, bleiben für die Anwendung 2GB über, also reichen 2GB ;-) |
Re: Zeilenvorschub
Stimmt, hab noch mal schnell nach geschaut. War nur anders in Erinnerung.
Dachte der Drucker wechselte erst die Zeile und fuhr dann zurück. (#13 #10) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz