AGB  ·  Datenschutz  ·  Impressum  







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

CSV Import

Ein Thema von MB3rlin · begonnen am 11. Apr 2011 · letzter Beitrag vom 28. Aug 2017
Antwort Antwort
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.784 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: CSV Import

  Alt 11. Apr 2011, 12:23
Hallo,

Du könntest Dir mal die TStringList und da speziell, Delimiter, DelimitedText
und StrictDelimiter anschauen.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.663 Beiträge
 
Delphi 12 Athens
 
#2

AW: CSV Import

  Alt 11. Apr 2011, 12:27
Hallo,

Du könntest Dir mal die TStringList und da speziell, Delimiter, DelimitedText
und StrictDelimiter anschauen.
Das kann aber auch nur der Anfang sein, da ja zumindest theoretisch das Trennzeichen auch in den Nutzdaten vorkommen kann. Gab es da nicht ein Tool oder eine Klasse von alzaimar (oder war es shmia? Ich bin gerade nicht sicher), das solche Dinge berücksichtigt?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Thom

Registriert seit: 19. Mai 2006
570 Beiträge
 
Delphi XE3 Professional
 
#3

AW: CSV Import

  Alt 11. Apr 2011, 16:52
Das kann aber auch nur der Anfang sein, da ja zumindest theoretisch das Trennzeichen auch in den Nutzdaten vorkommen kann.
Gibt's dafür nicht die Eigenschaft QuoteChar?
Thomas Nitzschke
Google Maps mit Delphi
  Mit Zitat antworten Zitat
MB3rlin

Registriert seit: 11. Apr 2011
Ort: Berlin
3 Beiträge
 
#4

AW: CSV Import

  Alt 19. Apr 2011, 15:38
Danke für eure Hilfe , anhand der Beispiele von Metallicwar und Luckie hat es geklappt
  Mit Zitat antworten Zitat
A.Griffin

Registriert seit: 17. Feb 2017
94 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: CSV Import

  Alt 28. Aug 2017, 11:45
Ich weiß, dass hier wär ein wenig necro aber ich hätte noch eine Frage. Was für eine Klasse ist bei Metallicwar "tTabelle"?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.417 Beiträge
 
Delphi 12 Athens
 
#6

AW: CSV Import

  Alt 28. Aug 2017, 11:49
Ein DataSet.
z.B. Delphi-Referenz durchsuchenTDataSet, bzw. hier dessen Nachfahre Delphi-Referenz durchsuchenTTable.


PS: TTable + [F1]
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
A.Griffin

Registriert seit: 17. Feb 2017
94 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

AW: CSV Import

  Alt 28. Aug 2017, 11:58
Komisch. Ich nutze gerade XE7 und habe weder TDataSet noch TTable in meiner Tool-Palette. Muss ich da was nachinstallieren?

*edit*

Ich habe gerade gesehen, dass ich dafür die BDE Components nachinstallieren muss.

Geändert von A.Griffin (28. Aug 2017 um 12:06 Uhr)
  Mit Zitat antworten Zitat
Metallicwar

Registriert seit: 5. Feb 2010
Ort: Bad Kissingen
293 Beiträge
 
Delphi XE Architect
 
#8

AW: CSV Import

  Alt 11. Apr 2011, 12:32
hallo, ich arbeite des Öfteren auch mit CSV Dateien:
vielleicht hilft dir mein Import ein bisschen weiter:

Delphi-Quellcode:
procedure TfrmMain.importFromCSVfile(sFile: string);
var
  tfDatei: TextFile;
  sZInhalt: string;
  slWerte: TStringList;
  iZeile: Integer;
begin
  TRY
    TRY
      AssignFile(tfDatei, sFile);
      Reset(tfDatei);
      iZeile:= 0;
      while not EoF(tfDatei) do
      begin
        slWerte := TStringList.Create;
        Readln(tfDatei,sZInhalt);
        slWerte.Delimiter := ';';
        slWerte.StrictDelimiter := True;
        slWerte.DelimitedText := sZInhalt;

        Inc(iZeile); // erste Zeile ist der Kopf

        if IZeile > 1 then // alles größer als Zeile eins sind Daten
          begin
            if slWerte.Strings[2] = 'then
              slWerte.Strings[2] := IntToStr(0);
              tTabelle.Open;
              tTabelle.Append;
              tTabelle['Spaltenname1'] := StrToInt(slWerte.Strings[0]);
              tTabelle['Spaltenname2'] := slWerte.Strings[2];
              tTabelle.Post;
          end;
      end;
    EXCEPT
      MessageDlg('Est ist ein Fehler aufgetreten, der Prozess wird beendet.',mtError, [mbOK], 0);
    END;
  FINALLY
    CloseFile(tfDatei);
    tTabelle.Close;
  END;
end;
  Mit Zitat antworten Zitat
MB3rlin

Registriert seit: 11. Apr 2011
Ort: Berlin
3 Beiträge
 
#9

AW: CSV Import

  Alt 11. Apr 2011, 12:42
Danke erstmal für die schnellen Antworten ich werd es gleich mal ausprobieren
  Mit Zitat antworten Zitat
Benutzerbild von Aurelius
Aurelius

Registriert seit: 29. Jan 2007
Ort: Erfurt
753 Beiträge
 
Delphi 7 Personal
 
#10

AW: CSV Import

  Alt 11. Apr 2011, 14:20
Hi MB3rlin,

solltest du dich dazu entscheiden den Import wirklich selbst schreiben zu wollen würde ich dir auf jeden Fall folgende Spezifikationen ans Herz legen: http://tools.ietf.org/html/rfc4180

Da ich selbst schonmal eine Klasse zur Verarbeitung von CSV-Dateien geschrieben habe (allerdings in einer anderen Programmiersprache ) kann ich aus eigener Erfahrung sagen: so schwer wie es vielleicht auf den ersten Blick aussieht ist das gar nicht! Also hab ruhig Mut und versuche dich an einer eigenen Implementation, bevor du bereits fertigen Code nutzt
Jonas
  Mit Zitat antworten Zitat
Antwort Antwort


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:26 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