![]() |
AW: Auf den letzten char in einer Datei zugreifen
Zitat:
Zitat:
|
AW: Auf den letzten char in einer Datei zugreifen
Bei der StringListe aufpassen, dass es nicht knallt, sollte die Datei leer sein und einfach so ohne Prüfung auf Count-1 zugegriffen werden,
bzw. das letzte Char, wenn es nichts in der Zeile gibt. PS: TStringList hängt beim Speichern einen Zeilenumbruch hinter jede Zeile, selbst wenn es beim Einlesen hinter der letzten Zeile keinen Zeilenumbruch gab. CreateFile, SetFilePointer, ReadFile, ![]() oder
Delphi-Quellcode:
CreateFile/TFileStream knallt nichts, außer du willst es.
S := TFileStream.Create(...);
//S.Position := S.Size - 1; //if AnsiChar(S.Read(..., 1)) = ',' then S.Size := S.Size - 1; S.Free; Ein Read/SetPosition hinter das Ende wird auf das Ende zurückgesetzt, bzw. stoppt dort. Einige Read-Methoden (die ohne Result), werfen eine Exception, wenn sie nicht genug lesen/schreiben konnten und die mit Result sagen dir wieviel sie wirklich gemacht hatten (wenn du nicht vergisst die Results auszuwerten). Read/Write vs. ReadBuffer/WriteBuffer |
AW: Auf den letzten char in einer Datei zugreifen
Zitat:
|
AW: Auf den letzten char in einer Datei zugreifen
Zitat:
Delphi-Quellcode:
heißen. Also die Anzahl der Elemente (=Anzahl der Zeilen) in der Stringliste sl. Die Anweisung soll in der letzten Zeile das letzte Zeichen löschen.
sl.Count
Zitat:
|
AW: Auf den letzten char in einer Datei zugreifen
Sorry, Bbommel hat recht, das war ein Copy/Paste Fehler.
So wäre es richtig bzw. Luckie hat ja auch schon die Anwendung von Delete gepostet.
Delphi-Quellcode:
Delete(sl.Strings[sl.Count-1], length(sl.Strings[sl.Count-1]) - 1, 1);
|
AW: Auf den letzten char in einer Datei zugreifen
Zitat:
Delphi-Quellcode:
[Fehler] FRMMAIN.pas(3782): Konstantenobjekt kann nicht als Var-Parameter weitergegeben werden
|
AW: Auf den letzten char in einer Datei zugreifen
Delphi-Quellcode:
var
sl: TStringList; s: String; Beginn // ...; s := sl.Text; Delete(s, 0, length(s)-1); sl.Text := s; sl.SaveToFile; |
AW: Auf den letzten char in einer Datei zugreifen
Zitat:
Delphi-Quellcode:
var
s: string; begin s := sl.Strings[sl.Count-1]; s := Trim(s); Delete(s, length(s), 1); sl.Strings[sl.Count-1] := s; end; |
AW: Auf den letzten char in einer Datei zugreifen
Das trim ist eine gute Idee.
|
AW: Auf den letzten char in einer Datei zugreifen
Habe das jetzt über TFileStream gelöst. Ich kann meinen Kopf nicht über die Tatsache wickeln warum bei dem String der Index mit 1 und nicht 0, so wie sonst, anfängt.
Code:
procedure exportToCSV(Eintrag : string);
var strm : TFileStream; n : longint; begin strm := TFileStream.Create('file.csv',fmCreate); n := Length(Eintrag); try strm.Position := 0; strm.Write(Eintrag[1], n); strm.Size := strm.Size - 1; finally strm.Free(); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:02 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