![]() |
AVR Bascom Funktion in Delphi???
Hallo DP,
vielleicht kennt jmd. von euch Bascom AVR. Dort gibt es ja eine Funktion die nennt sich lookup. Mit dieser kann man Tabellen auslesen. Eine Tabelle sieht z.Bsp. so aus:
Code:
Mit ' leitet man ein Kommentar ein.
Data 25%
Data 1%,25%,3% Data 100%,2% Data 100%,26%,64%,34% usw. Auslesen tut man es so: lookup(1,Datei.txt). Damit bekommt man jetzt "1". Die % Zeichen sind die Datentypen, man kann auch noch andere verwenden, aber ich brauch nur die mit %. Ich hoffe ihr versteht wie man die Daten bekommt. Also es wird immer 0,1,2,3 gezählt. Weiß jemand, wie ich so eine Funktion in Delphi hinbekomm. Mein Problem ist, dass ich zu dieser Funktion keinen SourceCode hab, um ihn zu übersetzen. Aber ich werd mal das Verzeichnis durchsuchen. Da hab ich bis jetzt noch nicht gesucht. Vielleicht hat ja jemand von euch eine Idee, wie man so eine Funktion realisieren könnte. Danke schonmal. EDIT: die Funktion hieß lookup, nicht offset. Hab euch noch die Beschreibung aus der Hilfe: ![]() |
AW: AVR Bascom Funktion in Delphi???
Was ist so schwer daran, sowas selber zu schreiben?
Delphi-Quellcode:
Aufruf...
function Lookup(offset:integer; DataIN:string):string;
type TStatus = (sNone, sKommentar, sData); var i, dataindex:integer; Status:TStatus; stop:boolean; begin i:=1; Status:=sNone; dataindex:=0; Result:=''; stop:=false; while (i < length(dataIN)) and not stop do begin if dataIN[i] = '''' then begin if Status = sData then begin stop:=(dataindex = offset); inc(dataindex); end; Status:=sKommentar; end else if dataIN[i] = #10 then begin if Status = sData then begin stop:=(dataindex = offset); inc(dataindex); end; Status:=sNone; end else if (Status = sNone) and (copy(dataIN, i, 5) = 'Data ') then begin Status:=sData; Result:=''; inc(i, 4); end else if Status = sData then begin if dataIN[i] = ',' then begin stop:=(dataindex = offset); inc(dataindex); if not stop then Result:=''; end else Result:=Result + dataIN[i]; end; inc(i); end; Result:=trim(Result); end;
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var Liste:TStringList; begin Liste:=TStringList.Create; try Liste.Append('''Data 25%'); Liste.Append('Data 1%,25%,3%'); Liste.Append('Data 100%,2%'); Liste.Append('Data 100%,26%,64%,34%'); ShowMessage('>' + Lookup(0, Liste.Text) + '<'); finally Liste.free; end; end; |
AW: AVR Bascom Funktion in Delphi???
Wollte ja eigentlich nur eine Idee, wie ich das machen kann, aber eine ganze Funktion ist auch nett.
Danke nochmals dafür. |
AW: AVR Bascom Funktion in Delphi???
Es hatte sich doch noch ein Fehler eingeschlichen, ist oben korrigiert.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz