Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   eBay Turbolister CSV einlesen (https://www.delphipraxis.net/87219-ebay-turbolister-csv-einlesen.html)

marabu 25. Feb 2007 17:13

Re: eBay Turbolister CSV einlesen
 
In der Demo kannst du im Ereignis OnCreate() der Form zwei zusätzliche Zeilen eintragen:

Delphi-Quellcode:
procedure TMainForm.FormCreate(Sender: TObject);
begin
  Application.Title := Caption;
  FFileName := '';
  FNames := TStringList.Create;
  Values := TStringList.Create;
  FFields := TStringList.Create;

  // Trenner umstellen
  FFields.Delimiter := ';';
  FNames.Delimiter := ';';
end;
Danach solltest du die Datei problemlos öffnen können. Allerdings soll dir die Demo nur den Umgang mit einer virtuellen ListView nahe bringen.

Bei eBay wird für mich der Eindruck erweckt, der gewünschte Trenner sei ein Komma:

Zitat:

Wie erstelle ich eine CSV-Datei?

CSV-Dateien können auf verschiedene Weise erstellt werden. Zumeist werden sie mit Hilfe eines Tabellenkalkulationsprogramms wie Microsoft Excel angelegt und dann als CSV gespeichert. (Im Datei "Menü" von Microsoft Excel den Menüpunkt "Speichern unter" auswählen -> dann als Dateiformat CSV (Trennzeichen-Getrennt) wählen und die Datei speichern). Danach müssen Sie die gespeicherte Datei mit einem Editor (z.B. Notepad) aufrufen und das ";"(Semikolon) Trennzeichen durch ein "," (Komma) Trennzeichen ersetzen. Wählen Sie dazu im Editor im Menü "Bearbeiten" die Funktion "Ersetzen". Geben Sie dann im "Suchen nach" Feld ein ";" (Semikolon) und im "Ersetzen Durch" Feld ein "," (Komma) ein und drücken Sie auf die Schaltfläche "Alles Ersetzen".
Seltsam...

Freundliche Grüße

DP-Maintenance 25. Feb 2007 19:16

DP-Maintenance
 
Dieses Thema wurde von "alcaeus" von "Programmieren allgemein" nach "VCL / WinForms / Controls" verschoben.
Passt besser hierher.

agm65 26. Feb 2007 10:42

Re: eBay Turbolister CSV einlesen
 
am besten du nimmst den code von mr kinzler, den hab ich auch genommen, damit gehts 1a !

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;

mkinzler 26. Feb 2007 10:44

Re: eBay Turbolister CSV einlesen
 
Es dürfen dann halt ekien Lerrzeichen in den Feldern vorkommen, dsa diese dann als Spaltentrenner erkannt werden.

bennle 26. Feb 2007 17:07

Re: eBay Turbolister CSV einlesen
 
Zitat:

Zitat von mkinzler
Es dürfen dann halt ekien Lerrzeichen in den Feldern vorkommen, dsa diese dann als Spaltentrenner erkannt werden.

Das wäre schlecht! Denn im Titel/Beschreibung gibt es natürlich schon leerzeichen.
Wie kann ich abhilfe schaffen?

Ich werde mir jetzt mal noch den Code genauer anschauen.

Vielen Dank.

MfG
Benny

bennle 26. Feb 2007 18:17

Re: eBay Turbolister CSV einlesen
 
Hallo,
So nun also ich bin echt am verzweifeln.
Das was auf der Ebayseite steht stimmt leider nicht! Denn Sie hat mehr als 102 Zellen und verwendet (;) Semikolon als Trennzeichen. Vielleicht stammen die Daten aus der Zeit von Turbolister No. 1

Ok ich habe jetzt mal eine Datei im Anhang!

Ich denke ich gehe da schritt für Schritt ran! Komischerweise kann Excel sie richtig öffen! Es stört nicht mal das obwohl es ein Trennzeichen wäre! Wie macht man das???

Wäre super wenn wir das hinkriegen würden.

Gruß
Benny

[edit=MrSpock]Attachment auf Wunsch des Erstellers gelöscht. Mfg, MrSpock[/edit]

Klaus01 26. Feb 2007 19:15

Re: eBay Turbolister CSV einlesen
 
Warum zerlegst Du nicht die Zeilen mit explode
und schreinst dann das StringArray in ein TStringGrid oder TMemo.

Grüße
Klaus

bennle 26. Feb 2007 19:21

Re: eBay Turbolister CSV einlesen
 
Hi Klaus,
Im Grunde mach ich das schon so, nur ich schreibe die Datei in ein Memo und lese dann die Zeilen aus. Aber nach eine gewissen Anzahl von Zeichen macht er trotzdem ein Zeilenumbruch und dann gibt es schon Fehler!
Zudem habe ich noch das Problem mit dem HTML Code!!! Denn dieser Beinhaltet manchmal das Trennzeichen!

MfG
Benny

Klaus01 26. Feb 2007 19:27

Re: eBay Turbolister CSV einlesen
 
Du hast aber auch WordWrap des Memo auf false stehen oder?

Grüße
Klaus

bennle 26. Feb 2007 19:31

Re: eBay Turbolister CSV einlesen
 
Mir fällt gerade etwas ein.
Ist es möglich die CSV Datei als Excel-Datei zu öffen (also mit Excel API)
und dann die Zellen auszulesen?
Wäre um einiges einfacher!

Gruß
Benny


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:42 Uhr.
Seite 2 von 3     12 3      

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 by Thomas Breitkreuz