Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   CSV --> Stringlist --> Stringlist zerlegen --> in DB auft. (https://www.delphipraxis.net/65087-csv-stringlist-stringlist-zerlegen-db-auft.html)

Union 12. Mär 2006 13:06

Re: CSV --> Stringlist --> Stringlist zerlegen -->
 
Hallo Leon,

Die Zeilen kannst Du Dir am simpelsten visualisieren, indem Die Zwischenergebnisse in ein Memo schiebst:
Delphi-Quellcode:
Memo1.Lines.Clear;
Memo1.Lines.AddStrings(SL);
Das müsstest Du dann anstelle des Append einsetzen. So werden Dir die Feldinhalte im Memo dann zeilenweise angezeigt.

Leon de Bar 12. Mär 2006 13:16

Re: CSV --> Stringlist --> Stringlist zerlegen -->
 
aha okay. nun habe ich auch diese blöde problem mit den leerzeichen...

ist es okay, dass er mir jedes feld in eine neue zeile schreibt oder hab ich was falsch gemacht? die logik sagt mir das ist richtig.

Union 12. Mär 2006 13:19

Re: CSV --> Stringlist --> Stringlist zerlegen -->
 
Das ist so gewollt. Die Stringliste zerlegt Dir aj durch Angabe des Delimiters die Zeile in die einzelnen Felder/Inhalte. Du kannst dann die Stringliste durchlaufen und Dir die Inhalte rausholen. Das Memo als Vorschlag hatte ich gerade deswegen gemachtm damit man die Felder besser sehen kann. Denn wenn die alle wieder in einer Zeile stehen, hast Du ja keine Überpfrüfungsmöglichkeit.

Leon de Bar 12. Mär 2006 13:25

Re: CSV --> Stringlist --> Stringlist zerlegen -->
 
Okay,

aber wie löse ich nun mein Leerzeichenproblem? Da ja in den Codeschnipseln leider selten Dokus dabei sind, ist das recht schwierig...

Die csv die ich einlese ist ein Straßenverzeichnis. Toller Weise haben schon die Spaltennamen Leerzeichen. und Straßennamen ja auch ab und an. Wie zum Beispiel Kurfürsten Damm...

mkinzler 12. Mär 2006 13:38

Re: CSV --> Stringlist --> Stringlist zerlegen -->
 
Villeicht vor dem zuweisen die Leerzeiceh und seltene Zeichen ersetzen. Später zurücksetzen.

Leon de Bar 12. Mär 2006 13:44

Re: CSV --> Stringlist --> Stringlist zerlegen -->
 
ja danke. das kann ich probieren. dazu verwende ich if then oder? oder gibt es einen replace-befehl? ich probiere das mal...


noch eine frage. das mit dem count habe ich nicht verstanden. was muss ich genau eigenben?

sl.count....? und wie bekomme ich das dann visualisiert? und wie nutze ich das dann für den befehl sl.Strings[0] wobei 0 dann ja durch eine variable ersetzt werden muss.

mkinzler 12. Mär 2006 13:53

Re: CSV --> Stringlist --> Stringlist zerlegen -->
 
Besser ist es die Funktion StringReplace zu verwenden, die ersetzt alle Vorkommen auf einen Streich.

Leon de Bar 12. Mär 2006 14:22

Re: CSV --> Stringlist --> Stringlist zerlegen -->
 
jo hat geklappt. ;o)

ich muss nun versuchen - und das ist mein problem warum ich das mit der stringlist kapieren muss - den inhalt der ersten spalte in eine db-tabelle zu schreiben, davor aber prüfen ob der wert schon einmal darin steht. wenn ja dann in der zweiten tabelle einen entsprechend anderen wert einschreiben.

dafür ist mir wichtig zu erkennen, wie das prog weiß, dass die erste spalte z.b. PLZ ist ohne dass ich ihm sage: pass auf, du hast 7 spalten und die erste ist plz... ???

der aufbau der csv ist schon komisch genug:

PLZ;Straße;v Hnr;v Hunr;b Hnr;b Hunr;G/U;Tour

aber die DB-Struktur ist wirklich klasse... ;o)

ich muss versuchen die Infos der csv in 4 tabellen zu bekommen.

tab 1:
PLZ-ID
PLZ

Tab 2:
Str-ID
StrName

Tab 3:
TourID
Tour

Tab 4:
PLZ
Straße
vonHausnr
vonHausnr-zusatz
bisHausnr
bisHausnr-zusatz
GU
Tour


In Tab 4 werden für PLZ, Tour und Straße nur IndexNummern gesetzt.


Beispiel:

2 versch. PLZ. alle in Tab 1.
PLZ1 -> Index1
PLZ2 -> Index2

Das selbe analog für Tour und Straße

In Tab 4 sieht eine zeile dann so aus:

PLZIndex1, StrIndex2,25,a,100,c, ,TourIndex2

um das umzusetzen muss ich verstehen was genau wie angesteuert werden kann.

War das verständlich? kannst du damit was anfangen?

mkinzler 12. Mär 2006 14:40

Re: CSV --> Stringlist --> Stringlist zerlegen -->
 
Also die PLZ(Klartext) befindet sich in SL.Strings[0], die Straße(Klartext) in SL.Strings[1] usw. Ich würde an deiner Stelle parametrisierte Abfragen für die Auflösen der Klartexte in IDs schreiben.

Leon de Bar 12. Mär 2006 15:00

Re: CSV --> Stringlist --> Stringlist zerlegen -->
 
aha, ich weiß nicht ob du meinen ersten eintrag gelesen hast. ;o)

ich bin newbie - zugegeben mit einem gewaltigem projekt - aber wenn du mir das etwas bunter erklären könntest würde ich sicher das verstehen, was du mir in deinem einen satz versucht hast zu sagen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:36 Uhr.
Seite 2 von 4     12 34      

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