![]() |
AW: Auf den letzten char in einer Datei zugreifen
Warum einfach, wenn es kompliziert geht. Berücksichtigst du auch, ob es ANSI oder Unicode ist, wenn du ein Byte abschheidest?
|
AW: Auf den letzten char in einer Datei zugreifen
Zitat:
|
AW: Auf den letzten char in einer Datei zugreifen
Zitat:
|
AW: Auf den letzten char in einer Datei zugreifen
Zumal du den String immer übergibst beim Aufruf deiner Funktion anstatt "wirklich" die Datei und deren letzte Zeile auszulesen... irgendwie macht deine Lösung in meinen Augen nicht das was du eigentlich gefragt hast...
- Du rufst die Funktion mit dem String "abcxyz" auf. - Du weist eine csv einem Stream zu - Definierst die Länge deines übergebenen Strings - Schreibst deinen String 1:1 in die csv - Schneidest vom Stream 1 Byte ab (siehe Hinweis von Luckie!) ... Du willst also bei JEDEM Eintrag in die CSV das letzte Zeichen abschneiden!? Warum machst du das nicht BEVOR du ihn in die CSV schreibst!? .... Und wegen 1 und 0 habe ich mir das generell mal so gemerkt: Geht es um die Position starte mit 0, geht es um das Zeichen starte mit 1. Ob das nun immer hin haut weiß ich nicht aber bisher passte es. |
AW: Auf den letzten char in einer Datei zugreifen
Darf ich kurz zur Klarstellung etwas dazwischen fragen? Die CSV Datei erstellst Du doch selbst, richtig? Warum nicht zum Zeitpunkt der Erstellung das überflüssige Zechen entfernen/vermeiden?
Sherlock |
AW: Auf den letzten char in einer Datei zugreifen
Zitat:
Code:
Wie geht es in Delphi?
str = str[0..$-1];
|
AW: Auf den letzten char in einer Datei zugreifen
Mit Delete().
Wurde auf der ersten Seite doch verlinkt. Von welcher Sprache kommst du? |
AW: Auf den letzten char in einer Datei zugreifen
Vielleicht hilft Dir das hier...
Delphi-Quellcode:
So könnte man eine frische Datei erzeugen.
procedure SchreibeCSV;
var Inhalt: TStringList; begin Inhalt := TStringList.Create; try Inhalt.Add('abc,123,xyz'); Inhalt.SaveToFile('Dateiname.csv'); finally Inhalt.Free; end; end; Per Inhalt.Add was auch immer einfügen. Per SaveToFile abspeichern, fertig. Viel Spass. |
AW: Auf den letzten char in einer Datei zugreifen
Zitat:
Delphi-Quellcode:
Und wenn es ein ShortString ist, geht auch:
Delete(Str, Length(Str), 1);
str := LeftStr(Str, Length(Str)-1); str := Copy(str, 1, Length(Str)-1); SetLength(str, Length(Str)-1);
Delphi-Quellcode:
Str[0] := AnsiChar(Byte(Str[0])-1);
Aber das will man nicht wirklich, zumal es bei normalen Strings zu Laufzeitfehlern führt. Und ich habe bestimmt noch Möglichkeiten vergessen. |
AW: Auf den letzten char in einer Datei zugreifen
Zitat:
Ich würde die CSV-Datei gleich korrekt füllen. Dann sparst du dir das Gemurkse mit Datei einlesen, das letzte Zeichen löschen und die Datei neu speichern. Vermutlich erstellst du in einer Schleife die Zeileneinträge. Für jeden Durchlauf der Schleife mit Trennzeichen. Da kannst du schon nach der Schleife das letzte Zeichen löschen oder beim letzten Durchlauf einfach das Trennzeichen weglassen. Also Fehlerursache beheben und nicht hinterher daran rumbasteln. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:36 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