AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein DelimitedText in Tstrings: Problem DoubleQuotes wenn sie am Anfang eines Wertes sind
Thema durchsuchen
Ansicht
Themen-Optionen

DelimitedText in Tstrings: Problem DoubleQuotes wenn sie am Anfang eines Wertes sind

Ein Thema von erich.wanker · begonnen am 17. Jan 2022 · letzter Beitrag vom 18. Jan 2022
 
Benutzerbild von erich.wanker
erich.wanker

Registriert seit: 31. Jan 2008
Ort: im schönen Salzburger Land
464 Beiträge
 
Delphi XE4 Professional
 
#1

DelimitedText in Tstrings: Problem DoubleQuotes wenn sie am Anfang eines Wertes sind

  Alt 17. Jan 2022, 14:28
Hallo Leute

Vorweg: "Double quotes as a string encapsulator is a feature of the CSV specifications"


Ich will eine UTF-8 Textdate einladen und die "Felder" auslesen und in meine Tabelle schreiben (die CSV Datei bekomme ich von einer anderen Software)

Struktur der CSV-Textdatei:
Kundennummer;Kundenname;Plz;Ort

Beispiel:
001;Hotel Huber;12345;Ort
002;Huber Hotel;12345;Ort
003;Hotel "Huber";12345;Ort
004;"Huber" Hotel;12345;Ort

Der Fehler kommt nun in Zeile 4 .. weil das " gleich nach dem ; kommt vermute ich.

Die CSV-Datei kann ich nicht ändern - wie kann ich via Delphi das Problem mit dem führenden Doublequote lösen?





Wie ich es aktuell mache:

Delphi-Quellcode:
 sl := TStringList.Create;
          slRow := TStringList.Create;

          slRow.StrictDelimiter := true;
          slRow.Delimiter := ';';
          try
   
            sl.LoadFromFile(datenpfad + '\' + dateiname, TEncoding.UTF8);

            for line := 0 to sl.Count-1 do
              begin
      
                slRow.DelimitedText := sl[line];

     
                t0 := slRow[0];
                t1 := slRow[1];
                t2 := slRow[2];
                t3 := slRow[3];


                Importtabelle.Append;
                Importtabelle.FieldByName('Datenquelle').AsInteger := 1;
                Importtabelle.FieldByName('Kundennummer').AsString := t0;
                Importtabelle.FieldByName('Kundenname').AsString := t1;
                Importtabelle.FieldByName('Postleitzahl').AsString := t2;
                Importtabelle.FieldByName('Ort').AsString := t3;
                Importtabelle.post;

              end;
Erich Wanker - for life:=1971 to lebensende do begin ..
O
/H\
/ \
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:56 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