Thema: Delphi csv in combobox ausgeben

Einzelnen Beitrag anzeigen

praktiker

Registriert seit: 9. Jun 2003
Ort: Hesedorf
11 Beiträge
 
#8

Re: csv in combobox ausgeben

  Alt 28. Nov 2005, 00:16
Falls du noch nicht zufrieden bist, dann Versuchs doch mal mit dieser von mir geschriebenen
Funktion. Am besten trennst du aber anstatt mit Leerzeichen die Einträge mit einem Komma.


Beispiel Aufruf .
showmessage( token('HP 730C,12.00 Euro,schwarz', ',' , 2) );
würde 12.00 Euro ausgeben;

showmessage( token('HP 730C,12.00 Euro,schwarz', ',' , 3) );
würde schwarz ausgeben;


showmessage( token('HP 730C,12.00 Euro',#32,2) );
würde "730C,12.00" ausgeben;

Delphi-Quellcode:
--------------------------------------------------------------------------------
function Token(StrVar :string ;StrSearch : Char; Posit : byte) : String;
var ZaehlPos,Maxlen : ^Integer;
    i : Integer;
    tmpstr : ^string;
begin
New(ZaehlPos);
New(maxLen);
new(tmpstr);
try

(* Result = ''*)
Token:='';

maxlen^:=length(Strvar);

if maxlen^ = 0 then exit;


case posit of
1 : if pos(StrSearch,StrVar) = 0 then Token:=StrVar else
     Token:=copy(strVar,1,pos(StrSearch,StrVar)-1);
2..255: begin
        zaehlpos^:=1;
        for i:= 1 to maxlen^ do
         begin
         if strvar[i] = StrSearch then zaehlpos^:=zaehlpos^+1;
         if zaehlpos^ = Posit then break;
         end; {for i}
         tmpstr^:=copy(StrVar,i+1,maxlen^-i+1);
         if pos(StrSearch,TmpStr^) > 0 then
          Token:= copy(TmpStr^,1,pos(StrSearch,TmpStr^)-1)
          else Token:=tmpstr^;
        end; {for}
end; {case}
finally
dispose(Zaehlpos);
dispose(maxLen);
dispose(tmpstr);
end;
end;
[edit=Luckie]Delphi-tags eingefügt. Beim nächsten mal bitte selber machen. Mfg, Luckie[/edit]
  Mit Zitat antworten Zitat