![]() |
probleme mit leerzeichen beim csv einlesen.
hallo leute, habe folgendes problem.
ich benutze um eine csv einzulesen folenden code von mkinzle.
Delphi-Quellcode:
die liesst auch wunderbar alles in die stringliste. wenn jetzt aber leerzeichen vorkommen, dann schreibt er pro leerzeichen 1 neue zeile, was kann ich dagegen machen ?
var
zeilennr: integer; DateiName, Zeile: String; F: TextFile; begin OpenDialog.Execute; // Das Ergebnis steht in FileName // ShowMessage(OpenDialog1.FileName); DateiName := OpenDialog.FileName; //Der Pfad wird in die Datei gestellt txtfilename.Text := DateiName; // ShowMessage(DateiName); sl:=TStringList.Create; //Objekt erzeugen sl.Delimiter := ';'; try //sl.LoadFromFile(DateiName); //Datei in Stringliste laden AssignFile(F, OpenDialog.FileName); Reset(F); Readln(F, Zeile); //Erste Zeile laden sl.DelimitedText := Zeile; //Zeile der StringListe zuweisen, nun kann man mit der Eigenschaft Count die Anzal der Spalten auslesen, die Spaltenname sthen dann in der Stringliste //sl.Strings[0] enthält Namen erste Spalte usw. While not Eof(F) do //Daten laden begin Readln(F, S); Edit1.Text := S; sl.DelimitedText := s; // Datenzeile wird in Stringliste geschrieben -< Auslesen wie Kopfspalte end; finally // //sl.free; //Objekt wieder freigeben edit2.Text := inttostr(sl.count); end; |
Re: probleme mit leerzeichen beim csv einlesen.
-Die Felder in der CSV Quoten
-Leerzeichen temporär ersetzen. |
Re: probleme mit leerzeichen beim csv einlesen.
Das ist eine ziemlich unangenehme Eigenschaft von DelimitedText. Das läßt sich m.E. nur durch Überschreiben der Methode lösen.
René |
Re: probleme mit leerzeichen beim csv einlesen.
hmm was hättet ihr für einen vorschlag, alle leerzeichen durch zB |$| oder sowas zu ersetzen und später wieder rückgänig zu machen. weil auf die csv dateien habe ich keinen einfluss.
|
Re: probleme mit leerzeichen beim csv einlesen.
Zitat:
|
Re: probleme mit leerzeichen beim csv einlesen.
ach das nervt, jetzt kann ich für jeden string den ich da raus bekomme eine rückaction machen.
|
Re: probleme mit leerzeichen beim csv einlesen.
also ich wandel jetzt die leerzeichen in ° um, so:
Delphi-Quellcode:
kann ich jetzt innerhalb der stringliste die einzelnen strings wieder ändern ?
while Pos(' ', s) > 0 do
s[Pos(' ', s)] := '°';
Delphi-Quellcode:
for I := 0 to sl.Count - 1 do
begin while Pos('°', sl.Strings[i]) > 0 do sl.Strings[i][Pos('°', sl.Strings[i])] := ' '; end; das geht leider nicht ..jemand eine idee ? |
Re: probleme mit leerzeichen beim csv einlesen.
Versuchs mal mit StringReplace
|
Re: probleme mit leerzeichen beim csv einlesen.
dann für den einzelnden string ? oder für die sl ?
|
Re: probleme mit leerzeichen beim csv einlesen.
Guck dir mal
![]() |
Re: probleme mit leerzeichen beim csv einlesen.
ja danke werde ich machen. ich hab das gefühl, dass ich in der stringliste nichts verändern kann. dann muss ich beim übergeben von sl auf meinen string das machen ;(.
|
Re: probleme mit leerzeichen beim csv einlesen.
ach perfekt, geht doch !
Delphi-Quellcode:
var
i:integer; begin for I := 0 to sl.Count - 1 do begin sl.Strings[i] := StringReplace(sl.Strings[i],'°',' ',[rfReplaceAll, rfIgnoreCase]); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:04 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