Avatar billede homsabu Nybegynder
14. marts 2005 - 11:29 Der er 9 kommentarer og
1 løsning

Indlæse fra CSV fil

Hey eksperter!

Jeg har et lille delphi program (Delphi 4!) som skal kunne indlæse fra en CSV-fil (komma sepereret) ind til nogle edit-felter. Hvordan dælen gør jeg det nemmest?? der er kun én linie i filen og kunne f.eks se sådan ud.
Carsten;Pedersen;18;4700;Næstved

(fornavn->edit1.text;efternavn->edit2.text;alder->edit3.text;postnummer->edit4.text;by->edit5.text)

desuden skal det være brugervenligt så man kan browse efter filen man skal indlæse fra...
Avatar billede stoney Nybegynder
14. marts 2005 - 11:36 #1
Hvis du er sikker på der kun er en linie i filen

procedure TForm1.Button1Click(Sender: TObject);
var
sl : Tstringlist;
begin
sl := Tstringlist.Create;
sl.LoadFromFile('d:\test.csv');
sl.Delimiter := ';';
sl.DelimitedText := sl[0];
edit1.Text := sl[0];
edit2.Text := sl[1];
edit3.Text := sl[2];
edit4.Text := sl[3];
edit5.Text := sl[4];
sl.Free;

end;


Stoney

Det er for mange point, sæt dem ned
Avatar billede homsabu Nybegynder
14. marts 2005 - 11:40 #2
okay det var jo rimelig nemt åbenbart! :-) jeg troede det var langt sværere!

tester det lige og vender tilbage asap
Avatar billede homsabu Nybegynder
14. marts 2005 - 11:54 #3
[Error] Unit1.pas(37): Undeclared identifier: 'Delimiter'

(Husk det er delphi 4)
Avatar billede roz Nybegynder
14. marts 2005 - 15:40 #4
Der skal bare stå Delimited istedet for Delimiter.
Avatar billede roz Nybegynder
14. marts 2005 - 15:46 #5
Nææ vent det skal der da i grundne ikke! Ups ups..
Avatar billede hrc Mester
15. marts 2005 - 00:00 #6
Bedste gæt er at Delphi-versionens TStringList ikke har denne bekvemme property. Hvorfor kører du også sådan en gammel version?
Avatar billede homsabu Nybegynder
15. marts 2005 - 13:47 #7
jeg kører med denne version fordi det er den vi har fået udleveret af skolen til at lave et projekt med...

Men er der ingen der kan løse det, eller har et forslag til en løsning så det virker i delphi 4??
Avatar billede kammeyer Nybegynder
17. marts 2005 - 04:57 #8
Det er en hurtig løsning - jeg gik ud fra at der ikke er linieskift eller noget som helst andet i csv filen - hvis der er må I tage højde for dette.


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Button1: TButton;
    OpenDialog1: TOpenDialog;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
    procedure FyldEdit(nr: integer; str: string);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  fil: textfile;
  counter: integer;
  str: string;
  ch: char;
begin
  if (Opendialog1.Execute) then
    begin
      AssignFile(fil, Opendialog1.FileName);
      reset(fil);
      counter := 1;
      str := '';
      while not eof(fil) do
        begin
          read(fil, ch);
          if (ch = ';') then
            begin
              FyldEdit(counter, str);
              inc(counter);
              str := '';
            end
          else
            begin
              str := str + ch;
            end;
        end;
      // sidste felt må ikke smutte (EOF)
      if (length(str) > 0) then
        FyldEdit(counter, str);
      closefile(fil);
    end;

end;

procedure TForm1.FyldEdit(nr: integer; str: string);
begin
  case nr of
    1: edit1.Text := str;
    2: edit2.Text := str;
    3: edit3.Text := str;
    4: edit4.Text := str;
    5: edit5.Text := str;
  end;
end;

end.
Avatar billede delrunner Nybegynder
07. april 2005 - 20:20 #9
Jeg bruger tit en komponent TadvGrid fra TMSsoftware. Den findes som freeware på Tory (http://www.torry.net/vcl/grids/powergrids/acgrdd4.zip).
Den "fylder" lidt, men kanon nem at bruge netop til at læse og skrive .csv filer.

DR
Avatar billede homsabu Nybegynder
05. maj 2006 - 09:52 #10
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester