Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi probleme mit leerzeichen beim csv einlesen. (https://www.delphipraxis.net/80721-probleme-mit-leerzeichen-beim-csv-einlesen.html)

agm65 14. Nov 2006 11:49


probleme mit leerzeichen beim csv einlesen.
 
hallo leute, habe folgendes problem.
ich benutze um eine csv einzulesen folenden code von mkinzle.

Delphi-Quellcode:
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;
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 ?

mkinzler 14. Nov 2006 11:58

Re: probleme mit leerzeichen beim csv einlesen.
 
-Die Felder in der CSV Quoten
-Leerzeichen temporär ersetzen.

smudo 14. Nov 2006 12:00

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é

agm65 14. Nov 2006 12:04

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.

mkinzler 14. Nov 2006 12:19

Re: probleme mit leerzeichen beim csv einlesen.
 
Zitat:

Zitat von agm65
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.

das meinte ich mit Leerzeichen temporär zu ersetzen ;-)

agm65 14. Nov 2006 12:27

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.

agm65 14. Nov 2006 12:35

Re: probleme mit leerzeichen beim csv einlesen.
 
also ich wandel jetzt die leerzeichen in ° um, so:

Delphi-Quellcode:
while Pos(' ', s) > 0 do
s[Pos(' ', s)] := '°';
kann ich jetzt innerhalb der stringliste die einzelnen strings wieder ändern ?

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 ?

mkinzler 14. Nov 2006 12:39

Re: probleme mit leerzeichen beim csv einlesen.
 
Versuchs mal mit StringReplace

agm65 14. Nov 2006 12:40

Re: probleme mit leerzeichen beim csv einlesen.
 
dann für den einzelnden string ? oder für die sl ?

Luckie 14. Nov 2006 12:43

Re: probleme mit leerzeichen beim csv einlesen.
 
Guck dir mal ExplodeExplode in der Code-Lib an.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:53 Uhr.
Seite 1 von 2  1 2      

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