AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ExtractStrings und '

Ein Thema von Maya · begonnen am 28. Jun 2012 · letzter Beitrag vom 28. Jun 2012
 
Benutzerbild von Maya
Maya

Registriert seit: 15. Jun 2011
Ort: Potsdam-Mittelmark
107 Beiträge
 
Delphi 2010 Enterprise
 
#1

ExtractStrings und '

  Alt 28. Jun 2012, 06:25
Delphi-Version: 2010
Hallo ihr Lieben,

mein Abschlussprojekt steht soweit und nun wollte ich mit den Echtdaten alles testen. Es geht ja darum, dass ich CSV-Dateien einlesen soll und die Daten auf eine Datenbank spielen, soweit die Kurzfassung. Was dazwischen noch so passiert, ist erst einmal unwichtig.

Jedenfalls: erste Datei klappte wunderbar, zweite Datei - Fehlermeldung.
Nach stundenlangen suchen bin ich darauf gestoßen, dass scheinbar das ExtractStrings nicht damit klar kommt, wenn diese Dinger hier ' in den Datensätzen sind. Hier mal der Code.

Delphi-Quellcode:
procedure TDateiEinlesen_Frame.ReadFile;
var i: Integer;
    aBuffer: String;
begin
  Datenliste:=TStringList.Create;
  Datenliste.LoadFromFile(Dateiname);

   for i := 0 to Datenliste.Count - 1 do
      begin
        aBuffer:=Datenliste.Strings[i];
        aBuffer:= ';' + aBuffer + ';';
        aBuffer:= StringReplace(aBuffer, '"', '', [rfReplaceAll]); // Das ganze Ersetzen ist notwendig,
        aBuffer:= StringReplace(aBuffer, ';;', ';NULL;', [rfReplaceAll]); //da wir von externen Stellen
        aBuffer:= StringReplace(aBuffer, ';;', ';NULL;', [rfReplaceAll]);//die Daten bekommen.
        Datenliste.Strings[i]:=aBuffer;
      end;

  INIinitialisieren;
end;

procedure TDateiEinlesen_Frame.CreateSpalten(aZeile: Integer);
var Daten: PWideChar;
begin
  Spaltenliste:=TStringList.Create;

  Daten:=PWideChar(Datenliste.Strings[aZeile]);

  ExtractStrings([';'],[' '],Daten,Spaltenliste);
end;
Ich lade erst von der Datei jede Zeile ein und lese dann die Zeilen einzeln aus, welche ich gerade benötige. Danach erstelle die Spalten.
Wenn aber nun ein Name vorhanden ist á la "El'Barto", habe ich dann in einen String alles mit drin, was nach den Namen kommt, also so in etwa "El'Barto;Evergreen Terrece;Springfield;01.04.1982".

Wenn ich nun die Spalten abfrage, um das INSERT zu basteln, knallt's regelmäßig, weil ich über das Listenmaximum gehe, ist ja klar.

Beim googeln bin ich schon darauf gestoßen, dass jmd. anderes schon das Problem hatte, aber leider gab's da keinen Lösungsvorschlag, den ich als sinnvoll erachtete. http://www.tek-tips.com/viewthread.cfm?qid=1116998

Nun brauch ich euch schlaue Leute.

Edit: Gerade hier d'rauf gestoßen:
Separators are ignored when inside a quoted string until the final end quote.
Jetzt weiß ich, WARUM das passiert, aber noch nicht, wie ich das umgehen kann. -.-
Status:
- FIAE
- Rechteinhaberin, ein Rüsselmops sein zu wollen

Geändert von Maya (28. Jun 2012 um 06:30 Uhr)
  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 02:18 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