[Delphi) Check Label

0

Witam
Na wstepie powiem co robi moj programik a wiec:
Zczytuje informacjie z RS232 i wrzuca je do zmiennej Str.
W rezultacie jeden sygnal to 66 znakow, mnie interesuja tylko znaki w srodku owego ciagu np: Label.Caption:=copy(Str,20,6); I jest wszystko ok ale nieraz przy inicjalizacji RS232, na poczatku zamiast owego ciagu znakow zakrada sie naprzyklad dodatkowy jakis znaczek lub kilka znaczkow co w rezultacie powoduje przesuniecie informacji a w miejscu z ktorego kopiuje 6 znakow pojawiaja sie inne znaki niz powwinne, zazwyczaj sa to cyfry ale nieraz sa to litery lub #$ itp..
Powyszy Label.Caption pozniej wykozystuje w taki sposob ze robie cos takiego:
Pom:=StrToInt(Label.Caption) i nastepuje dodawanie gdzie indziej owego Pom itp...

I tu moje pytanie bo jak wspomnialem nieraz zakradaja sie znaczki jak zrobic cos takiego ze sprawdza nam Label.Caption czy 6 znakow to cyfry ?? a nastepnie dopiero wtedy Pom przyjmuje tego Labela ??
Wiem ze moglbym zrobic to z
For ......to.....do
copy(Label.Caption,i,1);
I sprawdzac kazdy znak ale moze jest jakas szybsza metoda ??

Dziekuje i Pozdrawiam

Ps: :) brawa dla tego kto napisal skrypcik sprawdzajacy pisownie na forum !!! dzeki temu tacy dysortografi czegos moze sie naucza :P

0

Albo funkcją 'Val' albo gotowym rozwiązaniem 'TryStrToInt'

0

hmm..

Czyli 'TryStrToInt' przeksztalca Stringa na Integer pod warunkiem ze to cyfry ??

Edit:............

ComPort.ReadStr(Str, Count);
      Memo.Text:=Memo.Text+Str;
      Memo.Lines[0]:=Memo.Lines[i-1];
  L:=Memo.Lines[0];

Ln:=(copy(L,20,2)+copy(L,23,4));
Le:=(copy(L,33,2)+copy(L,36,4));

label11.Caption:=Ln;
 label12.Caption:=Le;

    p:=TryStrToInt(Le);

 EdE.Text:=IntToStr(p+400);

Mam cos takiego i cos mowi mi ze w tym TryStrToInt jest błąd :(
"Not enough actual parameters"
yh... :(

0

Budowa jest taka (dwa parametry, nie jeden):

powodzenie := TryStrToInt(ciąg znaków, zmienna wyjściowa);

//function TryStrToInt(const S: string; out Value: Integer): Boolean;

0

yhm :) dzieki

wlasnie tez to w helpie wyczytalem :) na poczatku myslalem ze to ma tak samo dzialac jak StrToInt.

Jak narazię programik dziala jeszcze trzeba potestowac a na razie to Dziekuje za pomoc :)

0

Niechcialem otwierac nowego Topicu bo sprawa ta wiaze sie nadal z tym samym:

A wiec moje pytanie:

Czy jest jaks procedurka Flip czy jakos tak :) odwracajaca ciag znakow ??
naprzyklad mamy w:
Lalel.Caption:='MOD'; na ekranie pojawi sie napis MOD ale gdy uzyjemmy czegos takiego niby Lalel.Caption:=FLIP('MOD'); na ekranie pojawi sie napis DOM.
Byc moze tego nie ma ale dla pewnosci chce sie zapytac :) przed robieniem wlasnej procedurki..

Dziekuje

0

Z nudów przygotowałem ci gotowca ;)

function flip(text1:string): string;
var
i:integer;
s:string;
begin
     for i := Length(text1) downto 0 do
         s:=s+text1[i];
  result:= s;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
label1.Caption:=flip(edit1.Text);
end;
0

Dzieki:)

Gdyby kogoś interesowal moj program zapraszam do pobrania a <ort>szczegulnie </ort>Białostoczan :)
http://www.remx.neostrada.pl/gps/gpsmap.zip

Pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1