AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken CSV --> Stringlist --> Stringlist zerlegen --> in DB auft.

CSV --> Stringlist --> Stringlist zerlegen --> in DB auft.

Ein Thema von Leon de Bar · begonnen am 12. Mär 2006 · letzter Beitrag vom 12. Mär 2006
Antwort Antwort
Seite 1 von 4  1 23     Letzte » 
Leon de Bar

Registriert seit: 1. Okt 2004
Ort: Berlin
125 Beiträge
 
Delphi 6 Enterprise
 
#1

CSV --> Stringlist --> Stringlist zerlegen --> in D

  Alt 12. Mär 2006, 11:22
Datenbank: Access • Zugriff über: ADO
Hallo Leute,

ich bin (wiedermal) Newbie. Das hängt daran, dass ich gezwungen war fast ein Jahr mit Delphi auszusetzen. ;o(

Jetzt zu meinem Problem. Ich sitze seit 2 Tagen dran, habe viele Lösungen hier und sonst wo gefunden aber es wird einfach kein Licht in meinem Hirn.

Ich habe eine CSV-Datei, die ich in einer Stringlist Zeile für Zeile einlesen will. Nun das Funzt schon. *na toll*

Ich muss aber noch einiges verstehen.

1. Wie stelle ich fest, wieviele Spalten die CSV hat. Die Trennung hier ist ein Semikolon (
2. Dann muss ich erfahren, wie diese Spalten heißen. Diese Info stehen ja in der ersten Zeile. Mir ist einfach nicht klar, wie ich die Namen (Werte) vor dem Semikolon erfahre.
3. Ist fast die Nummer 2. Ich muss dann die jeweiligen Werte (der folgenden Zeilen) in Variablen stecken und diese in mehrere Tabellen meiner DB einlesen.

Das Teilen und einfügen wird wohl nicht so sehr das Problem sein aber die Punkte 1 - 3 sind für mich seit 48 Stunden ein großes schwarzes Loch.

Bitte helft mir den Lichtschalter zu finden. In diesem Sinne Danke schon mal.

Leon
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.859 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: CSV --> Stringlist --> Stringlist zerlegen -->

  Alt 12. Mär 2006, 11:43
Zitat von Leon de Bar:
1. Wie stelle ich fest, wieviele Spalten die CSV hat. Die Trennung hier ist ein Semikolon (
StringList.Count;
Zitat:
2. Dann muss ich erfahren, wie diese Spalten heißen. Diese Info stehen ja in der ersten Zeile. Mir ist einfach nicht klar, wie ich die Namen (Werte) vor dem Semikolon erfahre.
Wie du gesagt hat die erste Zeile einlesen und dann kannst du die Feldname aus der StringListe auslesen

Delphi-Quellcode:
for i := 0 to StringList.Count -1 do
begin
  ...
  s := StringList.Strings[i];
  ...
end;
3. Ist fast die Nummer 2. Ich muss dann die jeweiligen Werte (der folgenden Zeilen) in Variablen stecken und diese in mehrere Tabellen meiner DB einlesen.
Leon[/quote]

Wie 2. in jeder weiteren Zeile kannst du die Werte wie in 2. die Name auslesen
Markus Kinzler
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: CSV --> Stringlist --> Stringlist zerlegen -->

  Alt 12. Mär 2006, 11:45
Hallo Leon,

vielleicht hilft es dir, wenn du eine kleine Beispielanwendung studierst: klick

Grüße vom marabu
  Mit Zitat antworten Zitat
Leon de Bar

Registriert seit: 1. Okt 2004
Ort: Berlin
125 Beiträge
 
Delphi 6 Enterprise
 
#4

Re: CSV --> Stringlist --> Stringlist zerlegen -->

  Alt 12. Mär 2006, 13:22
Hi Marabu,

danke für die Unterstützung aber ich kann das nicht ansehen. Komponennten fehlen mir.. naja, ich beiß mich schon durch die angaben von euch durch... )

@MKinzler:

Wie meinst du das mit StringList.Count zu punkt 1?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.859 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: CSV --> Stringlist --> Stringlist zerlegen -->

  Alt 12. Mär 2006, 13:26
Wenn du die erste Zeile der CSV-Datei geladen hast und diese mit Hilfe der Eigenschaft DelimitedText der Stringlist zugewiesen hast, dann enthält die Eigenschaft Count die Anzahl der Spalten.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: CSV --> Stringlist --> Stringlist zerlegen -->

  Alt 12. Mär 2006, 13:32
Hi,

schau Dir mal die Routine in diesem Thread an http://www.delphipraxis.net/internal...=480681#480681
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Leon de Bar

Registriert seit: 1. Okt 2004
Ort: Berlin
125 Beiträge
 
Delphi 6 Enterprise
 
#7

Re: CSV --> Stringlist --> Stringlist zerlegen -->

  Alt 12. Mär 2006, 13:43
Ääähhh jaaa... )

Okay. ich schreib mal was mein prog bis her macht und dann weiß ich nicht mehr weiter wie ich es schreiben soll...

Delphi-Quellcode:
var
   sl: TStringList;
   zeilennr: integer;
   DateiName, S: String;
   F: TextFile;

begin
   OpenDialog1.Execute; // Das Ergebnis steht in FileName
// ShowMessage(OpenDialog1.FileName);
   DateiName := OpenDialog1.FileName; //Der Pfad wird in die Datei gestellt
// ShowMessage(DateiName);
   sl:=TStringList.Create; //Objekt erzeugen
   try
      sl.LoadFromFile(DateiName); //Datei in Stringliste laden
      AssignFile(F, OpenDialog1.FileName);
      Reset(F);
         Readln(F, S);
         Edit1.Text := S;

   finally
      sl.free; //Objekt wieder freigeben
end;
Sicher fehlen hier noch schleifen das ist klar. Kannst du damit was anfangen?
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: CSV --> Stringlist --> Stringlist zerlegen -->

  Alt 12. Mär 2006, 13:48
Hi Leon,

Du liest ja nur die erste Zeile in ein Editfeld ein. Und dann noch mal die ganze Datei in die Stringliste. Die soll aber dem komfortablen "Zerpflücken" der einzelnen Zeilöen dienen. Warum hast Du das Beispiel nicht übernommen?
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.859 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: CSV --> Stringlist --> Stringlist zerlegen -->

  Alt 12. Mär 2006, 13:52
Delphi-Quellcode:
var
   sl: TStringList;
   zeilennr: integer;
   DateiName, S: String;
   F: TextFile;

begin
   OpenDialog1.Execute; // Das Ergebnis steht in FileName
// ShowMessage(OpenDialog1.FileName);
   DateiName := OpenDialog1.FileName; //Der Pfad wird in die Datei gestellt
// ShowMessage(DateiName);
   sl:=TStringList.Create; //Objekt erzeugen
   sl.Delimiter := ';';
   try
      //sl.LoadFromFile(DateiName); //Datei in Stringliste laden
      AssignFile(F, OpenDialog1.FileName);
      Reset(F);
      Readln(F, S); //Erste Zeile laden
      sl.DelimitedText := s; //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
end;
Markus Kinzler
  Mit Zitat antworten Zitat
Leon de Bar

Registriert seit: 1. Okt 2004
Ort: Berlin
125 Beiträge
 
Delphi 6 Enterprise
 
#10

Re: CSV --> Stringlist --> Stringlist zerlegen -->

  Alt 12. Mär 2006, 13:59
@Union:

weil ich deinen thread erst gelesen habe nachdem ich geantwortet hatte. ;o)

zumindest läuft es erst mal ohne fehlermeldung, wobei ich deine zeilen mit der datenbank noch ausgemarkert habe. ich muss das ergebnis vorerst mal visuell überwachen. damit ich verstehe was das prog macht. wie kann ich also die informationen sichtbar machen?

also zum beispiel: wie viele spalten? wie heißen diese Spalten? wie heißen die restlichen Inhalte?

das ist für mich wichtig, weil ich die sichtbaren ergebnisse besser verstehen kann. wenn das geschafft ist, kann ich mich auch im geiste damit auseinander setzen. danke für eure geduld. ich bemühe mich...
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 21:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz