Einzelnen Beitrag anzeigen

Leon de Bar

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

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

  Alt 12. Mär 2006, 19:01
Okay, ist aber noch mächtig baustelle hier. Ich weiß nicht wo ich genau ansetzen soll. Also nicht wundern.

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ActnList, ActnMan, ToolWin, ActnCtrls, ActnMenus, StdCtrls,
  Grids, DBGrids, DB, ADODB;

type
  TForm1 = class(TForm)
    ActionMainMenuBar1: TActionMainMenuBar;
    ActionManager1: TActionManager;
    StrassenverzNeu: TAction;
    OpenDialog1: TOpenDialog;
    Memo2: TMemo;
    Edit1: TEdit;
    ADOQuery1: TADOQuery;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    StringGrid1: TStringGrid;
    procedure StrassenverzNeuExecute(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.StrassenverzNeuExecute(Sender: TObject);
  var
    SL: TStringList;
    SG: TStringGrid;
    i: Integer;
    T: Textfile;
    SInString: String;


begin
  if (OpenDialog1.Execute) then begin
    SL := TStringList.Create; // Objekt erzeugen
    try
      AssignFile(T,OpenDialog1.FileName); // öffnet die Datei
      Reset(T);
      Readln(T, SInString); // Erste Zeile laden
// kann später gelöscht werden
        SInString := StringReplace(SInString, // Ersetze ' ' mit '~~'
         ' ', '~~', [rfReplaceAll, rfIgnoreCase]);
        SL.Delimiter := ';'; // Festlegung des Trennzeichens
      SL.DelimitedText := SInString; // Inhalt der Zeile Schreiben
        SL.Text := StringReplace(Sl.text, // Ersetze '~~' mit ' '
          '~~', ' ', [rfReplaceAll, rfIgnoreCase]);

      Memo2.Lines.Clear; // Löscht das Memo2
      Memo2.Text := SL.Text; // Zeigt erste Zeile in Memo2
// bis hier hin

      while (not Eof(T)) do begin // solange nicht EOF erreicht
        ReadLn(T,SInString); // lies die nächste Zeile
        SInString := StringReplace(SInString, // Ersetze ' ' mit '~~'
         ' ', '~~', [rfReplaceAll, rfIgnoreCase]);
        SL.Delimiter := ';'; // Festlegung des Trennzeichens
        SL.DelimitedText := SInString; // Inhalt der Zeile Schreiben
        SL.Text := StringReplace(Sl.text, // Ersetze '~~' mit ' '
          '~~', ' ', [rfReplaceAll, rfIgnoreCase]);
// kann später gelöscht werden
        Memo2.Lines.AddStrings(SL); // Listet die Felder in Memo2

//******* Tabelle ansprechen *********

// ADOTable1.TableName:='StrVerzeichnis';
// ADOTable1.Active:=true;
// ADOTable1.Append; // ?

// bis hier hin

        for i := 0 to SL.Count-1 do // ?

        ADOQuery1.Insert;
        ADOQuery1.SQL.Text:='INSERT


// ADOTable1.Fields[I].AsString := SL.Strings[i]; //?
// ADOTable1.Post; // ?
end;
finally
i := SL.Count;
ShowMessage(IntToStr(i));
SL.Free; // Objekt schließen
end;
end;
CloseFile(T); // Datei schließen

end;
procedure TForm1.FormCreate(Sender: TObject);
begin

end;

end.

wenn ich nur mit ADOTable arbeite löft es nur werden die daten dann nicht dahin verschoben wo sie sollen, denn es ist ja nur eine Tabelle. Aber mit ADOQuery komm ich gar nicht klar...
  Mit Zitat antworten Zitat