|
| kommasepareret fil Fra : Peder Hanghøj |
Dato : 02-01-04 17:33 |
|
Er der en let måde at indlæse en kommasepareret fil til en stringgrid.
Tak, Peder
| |
Harald (02-01-2004)
| Kommentar Fra : Harald |
Dato : 02-01-04 18:09 |
|
"Peder Hanghøj" <peder@hanghoej.dk> skrev i en meddelelse
news:3ff59d56$0$29321$edfadb0f@dread15.news.tele.dk...
> Er der en let måde at indlæse en kommasepareret fil til en stringgrid.
Ja og nej, jeg mener ikke der er en function specielt lavet til det så det
kræver lidt manuelt arbejde, men det er da også rimeligt let.
Hvis du ikke har noget specielt du skal bruge stringgrid til hvad så med at
bruge ListView, ListView virker mere "up to date" og understøttes også af
windows XP look hvis du bruger den.
Mvh
HK
| |
Dan Spares (06-01-2004)
| Kommentar Fra : Dan Spares |
Dato : 06-01-04 15:04 |
|
Ja, god løsning
"Harald" <news10@-REMOVE-THIS-kroning.dk> skrev i en meddelelse
news:3ff5a5bd$0$27449$edfadb0f@dread16.news.tele.dk...
> "Peder Hanghøj" <peder@hanghoej.dk> skrev i en meddelelse
> news:3ff59d56$0$29321$edfadb0f@dread15.news.tele.dk...
> > Er der en let måde at indlæse en kommasepareret fil til en stringgrid.
>
> Ja og nej, jeg mener ikke der er en function specielt lavet til det så det
> kræver lidt manuelt arbejde, men det er da også rimeligt let.
> Hvis du ikke har noget specielt du skal bruge stringgrid til hvad så med
at
> bruge ListView, ListView virker mere "up to date" og understøttes også af
> windows XP look hvis du bruger den.
>
> Mvh
> HK
>
>
| |
Thor (02-01-2004)
| Kommentar Fra : Thor |
Dato : 02-01-04 23:37 |
|
Hej Peder
Denne metode er da ret elegant, ikke:
procedure TForm1.FormCreate(Sender: TObject);
var rows, cols : tstringlist;
var i : integer;
begin
rows := tstringlist.Create;
cols := tstringlist.Create;
cols.Delimiter := ';';
rows.LoadFromFile('file1.txt');
// File1.txt har følgende udseende:
//11;12;13;14;15
//21;22;23;24;25
//31;32;33;34;35
//41;42;43;44;45
//51;52;53;54;55
for i := 0 to rows.count-1 do
begin
cols.DelimitedText := rows[i];
stringgrid1.cols[i].AddStrings(cols);
end;
end;
mvh Thor
"Peder Hanghøj" <peder@hanghoej.dk> wrote in message
news:3ff59d56$0$29321$edfadb0f@dread15.news.tele.dk...
> Er der en let måde at indlæse en kommasepareret fil til en stringgrid.
>
> Tak, Peder
>
>
| |
Harald (02-01-2004)
| Kommentar Fra : Harald |
Dato : 02-01-04 23:37 |
|
"Thor" <thr@image.danmark> skrev i en meddelelse
news:bt4r5j$2kt9$1@news.cybercity.dk...
> Hej Peder
> Denne metode er da ret elegant, ikke:
>
> procedure TForm1.FormCreate(Sender: TObject);
> var rows, cols : tstringlist;
> var i : integer;
> begin
> rows := tstringlist.Create;
> cols := tstringlist.Create;
> cols.Delimiter := ';';
> rows.LoadFromFile('file1.txt');
> // File1.txt har følgende udseende:
> //11;12;13;14;15
> //21;22;23;24;25
> //31;32;33;34;35
> //41;42;43;44;45
> //51;52;53;54;55
> for i := 0 to rows.count-1 do
> begin
> cols.DelimitedText := rows[i];
> stringgrid1.cols[i].AddStrings(cols);
> end;
> end;
Hvad med denne løsning er den ikke mere elegant? Og når han skriver
kommasepareret fil så mener han vel at den er en standard kommasepareret fil
hvor tingene er adskilt med komma og ikke alt mulig andet
var
StringList : TStringList;
i : integer;
begin
StringList:=TStringList.Create;
StringList.LoadFromFile('c:\test.txt');
for i:=0 to StringList.Count-1 do
StringGrid1.Rows[i].CommaText:=StringList[i];
end;
Mvh
HK
| |
Thor (03-01-2004)
| Kommentar Fra : Thor |
Dato : 03-01-04 00:17 |
|
Hej Harald
Respekt.
Jeg havde valgt en (muligvis mere pædagogisk) omvej, - din
metode springer et unødvendigt led over.
Når du skriver "kræver lidt manuelt arbejde", lød det på mig som om, at du
ikke
kendte Delimitedtext/Commatext metoden.. Ingen årsag.
mvh Thor
>
> Hvad med denne løsning er den ikke mere elegant? Og når han skriver
> kommasepareret fil så mener han vel at den er en standard kommasepareret
fil
> hvor tingene er adskilt med komma og ikke alt mulig andet
>
>
> var
> StringList : TStringList;
> i : integer;
> begin
> StringList:=TStringList.Create;
> StringList.LoadFromFile('c:\test.txt');
> for i:=0 to StringList.Count-1 do
> StringGrid1.Rows[i].CommaText:=StringList[i];
> end;
>
> Mvh
> HK
>
>
| |
Peder Hanghøj (03-01-2004)
| Kommentar Fra : Peder Hanghøj |
Dato : 03-01-04 09:59 |
|
Jeg siger mange tak.
Peder
"Thor" <thr@image.danmark> skrev i en meddelelse
news:bt4thr$2oi4$1@news.cybercity.dk...
> Hej Harald
>
> Respekt.
> Jeg havde valgt en (muligvis mere pædagogisk) omvej, - din
> metode springer et unødvendigt led over.
> Når du skriver "kræver lidt manuelt arbejde", lød det på mig som om, at du
> ikke
> kendte Delimitedtext/Commatext metoden.. Ingen årsag.
>
> mvh Thor
> >
> > Hvad med denne løsning er den ikke mere elegant? Og når han skriver
> > kommasepareret fil så mener han vel at den er en standard kommasepareret
> fil
> > hvor tingene er adskilt med komma og ikke alt mulig andet
> >
> >
> > var
> > StringList : TStringList;
> > i : integer;
> > begin
> > StringList:=TStringList.Create;
> > StringList.LoadFromFile('c:\test.txt');
> > for i:=0 to StringList.Count-1 do
> > StringGrid1.Rows[i].CommaText:=StringList[i];
> > end;
> >
> > Mvh
> > HK
> >
> >
>
>
| |
Peder Hanghøj (03-01-2004)
| Kommentar Fra : Peder Hanghøj |
Dato : 03-01-04 14:16 |
|
Det virker fint, men det ser ud til at der også 'skiftes' kolonne, når der
er mellemrum og ikke kun, når der er komma.
Er det bare sådan?
Tak, Peder
"Harald" <news10@-REMOVE-THIS-kroning.dk> skrev i en meddelelse
news:3ff5f27b$0$27413$edfadb0f@dread16.news.tele.dk...
> "Thor" <thr@image.danmark> skrev i en meddelelse
> news:bt4r5j$2kt9$1@news.cybercity.dk...
> > Hej Peder
> > Denne metode er da ret elegant, ikke:
> >
> > procedure TForm1.FormCreate(Sender: TObject);
> > var rows, cols : tstringlist;
> > var i : integer;
> > begin
> > rows := tstringlist.Create;
> > cols := tstringlist.Create;
> > cols.Delimiter := ';';
> > rows.LoadFromFile('file1.txt');
> > // File1.txt har følgende udseende:
> > //11;12;13;14;15
> > //21;22;23;24;25
> > //31;32;33;34;35
> > //41;42;43;44;45
> > //51;52;53;54;55
> > for i := 0 to rows.count-1 do
> > begin
> > cols.DelimitedText := rows[i];
> > stringgrid1.cols[i].AddStrings(cols);
> > end;
> > end;
>
> Hvad med denne løsning er den ikke mere elegant? Og når han skriver
> kommasepareret fil så mener han vel at den er en standard kommasepareret
fil
> hvor tingene er adskilt med komma og ikke alt mulig andet
>
>
> var
> StringList : TStringList;
> i : integer;
> begin
> StringList:=TStringList.Create;
> StringList.LoadFromFile('c:\test.txt');
> for i:=0 to StringList.Count-1 do
> StringGrid1.Rows[i].CommaText:=StringList[i];
> end;
>
> Mvh
> HK
>
>
| |
Tom-Vidar Nilsen (03-01-2004)
| Kommentar Fra : Tom-Vidar Nilsen |
Dato : 03-01-04 14:24 |
|
> Det virker fint, men det ser ud til at der også 'skiftes' kolonne, når der
> er mellemrum og ikke kun, når der er komma.
> Er det bare sådan?
> Tak, Peder
Standar formatet er slik ja. Det skal normalt være "rundet det med space i"
"123 avd", 456 , dette blir tre
| |
Harald (03-01-2004)
| Kommentar Fra : Harald |
Dato : 03-01-04 14:37 |
|
"Peder Hanghøj" <peder@hanghoej.dk> skrev i en meddelelse
news:3ff6c0ac$0$29386$edfadb0f@dread15.news.tele.dk...
> Det virker fint, men det ser ud til at der også 'skiftes' kolonne, når der
> er mellemrum og ikke kun, når der er komma.
> Er det bare sådan?
> Tak, Peder
Hvis din komma fil ikke følger standarden for komma filer så prøv med Thor´s
metode.
Mvh
HK
| |
Peder Hanghøj (03-01-2004)
| Kommentar Fra : Peder Hanghøj |
Dato : 03-01-04 15:46 |
|
Jeg synes bare, at det er mærkeligt, at hvis filen hedder
Peder, Peder Hanghøj, Hanghøj
Hans, Hans Jensen, Hansen
Så vil der komme 4 kolonner og ikke 3.
Peder
"Harald" <news10@-REMOVE-THIS-kroning.dk> skrev i en meddelelse
news:3ff6c584$0$27424$edfadb0f@dread16.news.tele.dk...
> "Peder Hanghøj" <peder@hanghoej.dk> skrev i en meddelelse
> news:3ff6c0ac$0$29386$edfadb0f@dread15.news.tele.dk...
> > Det virker fint, men det ser ud til at der også 'skiftes' kolonne, når
der
> > er mellemrum og ikke kun, når der er komma.
> > Er det bare sådan?
> > Tak, Peder
>
> Hvis din komma fil ikke følger standarden for komma filer så prøv med
Thor´s
> metode.
>
> Mvh
> HK
>
>
| |
Harald (03-01-2004)
| Kommentar Fra : Harald |
Dato : 03-01-04 16:50 |
|
"Peder Hanghøj" <peder@hanghoej.dk> skrev i en meddelelse
news:3ff6d595$0$29305$edfadb0f@dread15.news.tele.dk...
> Jeg synes bare, at det er mærkeligt, at hvis filen hedder
> Peder, Peder Hanghøj, Hanghøj
> Hans, Hans Jensen, Hansen
>
> Så vil der komme 4 kolonner og ikke 3.
Det er fordi at den burde hedde:
Peder, "Peder Hanghøj", Hanghøj
Hans, "Hans Jensen", Hansen
hvis den skal følge standarden for komma filer, standarden siger muligvis,
men jeg er ikke helt sikker, at den burde se sådan ud.
"Peder", "Peder Hanghøj", "Hanghøj"
"Hans", "Hans Jensen", "Hansen"
Kun tal skal ikke sættes i ""
Mvh
HK
>
> "Harald" <news10@-REMOVE-THIS-kroning.dk> skrev i en meddelelse
> news:3ff6c584$0$27424$edfadb0f@dread16.news.tele.dk...
> > "Peder Hanghøj" <peder@hanghoej.dk> skrev i en meddelelse
> > news:3ff6c0ac$0$29386$edfadb0f@dread15.news.tele.dk...
> > > Det virker fint, men det ser ud til at der også 'skiftes' kolonne, når
> der
> > > er mellemrum og ikke kun, når der er komma.
> > > Er det bare sådan?
> > > Tak, Peder
> >
> > Hvis din komma fil ikke følger standarden for komma filer så prøv med
> Thor´s
> > metode.
> >
> > Mvh
> > HK
> >
> >
>
>
| |
Mik D. (03-01-2004)
| Kommentar Fra : Mik D. |
Dato : 03-01-04 15:52 |
|
Hej Peder
Prøv dette:
var
cars : TStringList; // Define our string list variable
i : Integer;
begin
// Define a string list object, and point our variable at it
cars := TStringList.Create;
// Now add some cars to our list - using the DelimitedText property
// with overriden control variables
cars.Delimiter := ' '; // Each list item will be blank separated
cars.QuoteChar := '|'; // And each item will be quoted with |'s
cars.DelimitedText := '|Honda Jazz| |Ford Mondeo| |Jaguar "E-type"|';
// Now display these cars
for i := 0 to cars.Count-1 do
ShowMessage(cars[i]); // cars[i] equates to cars.Strings[i]
end;
Fundet på:
http://www.delphibasics.co.uk/RTL.asp?Name=TStringList&ExpandCode1=Yes&ExpandCode2=Yes#Ex1
Mik
| |
|
|