/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Semicolontext
Fra : Jørn Rasmussen


Dato : 01-06-02 09:04

Findes der componenter eller rutiner der kan håndtere semikolon -
(CSV) og tabulatorseparerede filer på samme måde som
Strings.Commatext kan håndtere kommaseparerede filer.

på forhånd tak.
Jørn




 
 
Søren Mikkelsen (01-06-2002)
Kommentar
Fra : Søren Mikkelsen


Dato : 01-06-02 09:40


"Jørn Rasmussen" <post@farman.dk> skrev i en meddelelse
news%J8.30888$4f4.1188459@news000.worldonline.dk...
> Findes der componenter eller rutiner der kan håndtere semikolon -
> (CSV) og tabulatorseparerede filer på samme måde som
> Strings.Commatext kan håndtere kommaseparerede filer.
>
> på forhånd tak.
> Jørn
hej Jørn

Kan du ikke blot erstatte delimiter, og derefter bruge tstringlist ?
En anden tilgang kunne være at bruge et AWK-komponent, det burde være muligt
at finde sådan et derud i cyperspace.

VH Søren MIkkelsen.



Jørn Rasmussen (01-06-2002)
Kommentar
Fra : Jørn Rasmussen


Dato : 01-06-02 19:20

Søren Mikkelsen skrev i meddelelsen
<0g1K8.5328$uA.5327933@news.orangenet.dk>...
>
>"Jørn Rasmussen" <post@farman.dk> skrev i en meddelelse
>news%J8.30888$4f4.1188459@news000.worldonline.dk...
>> Findes der componenter eller rutiner der kan håndtere semikolon -
>> (CSV) og tabulatorseparerede filer på samme måde som
>> Strings.Commatext kan håndtere kommaseparerede filer.
>>
>> på forhånd tak.
>> Jørn
>hej Jørn
>
>Kan du ikke blot erstatte delimiter, og derefter bruge tstringlist
?


Den forstår jeg ikke helt. Delimiter har ikke indflydelse på
commatext.

>En anden tilgang kunne være at bruge et AWK-komponent, det burde
være muligt
>at finde sådan et derud i cyperspace.


Hvad er en AWK- komponent ?

Jeg havde en "parse procedure" fra en samling rutiner fra EFD
Systems jeg engang investerede i, som delvis løste mit problem.
Men leder stadigvæk efter en mere elegant måde at gøre det på.

hilsen JR






Søren Mikkelsen (03-06-2002)
Kommentar
Fra : Søren Mikkelsen


Dato : 03-06-02 15:44


"Jørn Rasmussen" <post@farman.dk> skrev i en meddelelse
news:bg8K8.31401$4f4.1211553@news000.worldonline.dk...
> Søren Mikkelsen skrev i meddelelsen
> <0g1K8.5328$uA.5327933@news.orangenet.dk>...
> >
> >"Jørn Rasmussen" <post@farman.dk> skrev i en meddelelse
> >news%J8.30888$4f4.1188459@news000.worldonline.dk...
> >> Findes der componenter eller rutiner der kan håndtere semikolon -
> >> (CSV) og tabulatorseparerede filer på samme måde som
> >> Strings.Commatext kan håndtere kommaseparerede filer.
> >>
> >> på forhånd tak.
> >> Jørn
> >hej Jørn
> >
> >Kan du ikke blot erstatte delimiter, og derefter bruge tstringlist
> ?
>
>
> Den forstår jeg ikke helt. Delimiter har ikke indflydelse på
> commatext.
>
> >En anden tilgang kunne være at bruge et AWK-komponent, det burde
> være muligt
> >at finde sådan et derud i cyperspace.
>
>
> Hvad er en AWK- komponent ?
>
> Jeg havde en "parse procedure" fra en samling rutiner fra EFD
> Systems jeg engang investerede i, som delvis løste mit problem.
> Men leder stadigvæk efter en mere elegant måde at gøre det på.
>
> hilsen JR
>
Hi JR

Det jeg mener er, at hvis din fil er semikolon separeret, f.eks således
:"Hans";"Peter";"Sten"
er det jo blot at erstatte < ; > med < , >, således : "Hans","Peter","Sten".
indlæs så filen i en string og sæt TStringlist.commatext lig denne string.

AWK er et unix-værktøj, der er eminent til at indlæse og behandle
text-filer baseret på mønstre. Jeg mener at have set delphi-componenter, der
implementerer
AWK funktionalitet.

VH Søren Mikkelsen.



Jørn Rasmussen (04-06-2002)
Kommentar
Fra : Jørn Rasmussen


Dato : 04-06-02 16:56


Søren Mikkelsen skrev i meddelelsen ...
>
>Det jeg mener er, at hvis din fil er semikolon separeret, f.eks
således
>:"Hans";"Peter";"Sten"
>er det jo blot at erstatte < ; > med < , >, således :
"Hans","Peter","Sten".
>indlæs så filen i en string og sæt TStringlist.commatext lig denne
string.


Ja - dette har jeg også overvejet - og måske ville det være en mere
fornuftig end den jeg har valgt.


/JR



R. A. Larsen (01-06-2002)
Kommentar
Fra : R. A. Larsen


Dato : 01-06-02 19:19

"Jørn Rasmussen" <post@farman.dk> wrote:
>
> Findes der componenter eller rutiner der kan håndtere semikolon -
> (CSV) og tabulatorseparerede filer på samme måde som
> Strings.Commatext kan håndtere kommaseparerede filer.

Ja, men der har været problemer med alle dem jeg har prøvet. Nogle krævede at
der var anførselstegn (gåseøjne) om alle felter, andre kunne ikke klare
anførselstegn inde i felterne osv. Til sidst måtte jeg skrive min egen.

Selv "Strings.Commatext" er der problemer med (hvis du har et felt med
mellemrum og uden anførselstegn bliver det til flere felter).

MVH, René
--
Using Virtual Access
http://www.vamail.com


Bent Pedersen (03-06-2002)
Kommentar
Fra : Bent Pedersen


Dato : 03-06-02 10:06

"Jørn Rasmussen" <post@farman.dk> wrote in message
news%J8.30888$4f4.1188459@news000.worldonline.dk

> Findes der componenter eller rutiner der kan håndtere semikolon -
> (CSV) og tabulatorseparerede filer på samme måde som
> Strings.Commatext kan håndtere kommaseparerede filer.

Hvis du har koden til Delphi-klasserne kan du se hvordan det er lavet og
lave din egen rutine udfra det.

Kig i classes.pas, TStrings.CommaText.

/Bent


--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG

Jørn Rasmussen (04-06-2002)
Kommentar
Fra : Jørn Rasmussen


Dato : 04-06-02 17:00


Bent Pedersen skrev i meddelelsen
<6aef1222431622577cd8e5220588d066.64928@mygate.mailgate.org>...
>"Jørn Rasmussen" <post@farman.dk> wrote in message
>news%J8.30888$4f4.1188459@news000.worldonline.dk
>
>> Findes der componenter eller rutiner der kan håndtere semikolon -
>> (CSV) og tabulatorseparerede filer på samme måde som
>> Strings.Commatext kan håndtere kommaseparerede filer.
>
>Hvis du har koden til Delphi-klasserne kan du se hvordan det er
lavet og
>lave din egen rutine udfra det.
>
>Kig i classes.pas, TStrings.CommaText.


Har prøvet, men kunne ikke gennemskue koden.

hilsen Jørn





Peter Vrist (10-06-2002)
Kommentar
Fra : Peter Vrist


Dato : 10-06-02 10:56

Hej Jørn

Jeg har lavet følgende klasse nedarvet fra TStringList.

TStrenge = class(TStringlist)
private
procedure SetCommaText(const Value: string);
function GetCommaText: string;
protected
property CommaText: string read GetCommaText write SetCommaText;
end;

implementation

....

function TStrenge.GetCommaText: string;
var
S: string;
P: PChar;
I, Count: Integer;
Seperator : Char;
begin
Seperator := ';'; //<----- Her definerer du din seperator
Count := GetCount;
if (Count = 1) and (Get(0) = '') then
Result := '""'
else
begin
Result := '';
for I := 0 to Count - 1 do
begin
S := Get(I);
P := PChar(S);
while not (P^ in [#0..#31,'"', Seperator]) do P := CharNext(P);
if (P^ <> #0) then S := AnsiQuotedStr(S, '"');
Result := Result + S + Seperator;
end;
System.Delete(Result, Length(Result), 1);
end;
end;

procedure TStrenge.SetCommaText(const Value: string);
var
P, P1: PChar;
S: string;
Seperator : Char;
begin
Seperator := ';'; //<----- Her definerer du din seperator
BeginUpdate;
try
Clear;
P := PChar(Value);
while P^ in [#1..#31] do P := CharNext(P);
while P^ <> #0 do
begin
if P^ = '"' then
S := AnsiExtractQuotedStr(P, '"')
else
begin
P1 := P;
while (P^ > #31) and (P^ <> Seperator) do P := CharNext(P);
SetString(S, P1, P - P1);
end;
Add(S);
while P^ in [#1..#31] do P := CharNext(P);
if P^ = Seperator then
repeat
P := CharNext(P);
until not (P^ in [#1..#31]);
end;
finally
EndUpdate;
end;
end;

Det er en "Quick & Dirty" løsning og kan sikkert laves smartere, men den
virker.

Håber det hjælper

Peter Vrist
pv_notthis_@npt.dk




"Jørn Rasmussen" <post@farman.dk> skrev i en meddelelse
news%J8.30888$4f4.1188459@news000.worldonline.dk...
> Findes der componenter eller rutiner der kan håndtere semikolon -
> (CSV) og tabulatorseparerede filer på samme måde som
> Strings.Commatext kan håndtere kommaseparerede filer.
>
> på forhånd tak.
> Jørn
>
>
>



Jørn Rasmussen (13-06-2002)
Kommentar
Fra : Jørn Rasmussen


Dato : 13-06-02 08:19

Tak for tippet.

hilsen Jørn





Søg
Reklame
Statistik
Spørgsmål : 177500
Tips : 31968
Nyheder : 719565
Indlæg : 6408518
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste