pascal kerdes
Moravcsik Szilárd
mszilard at contarex.hu
Tue Sep 18 09:32:17 CEST 2007
Moravcsik Szilárd írta:
> Fuzesi Arnold írta:
>> ezt vki ki tudna javítani nekem működőre?
>> basszus elfelejtettem pascalul :(
>>
>> amit szeretnek:
>> ami bejön karakter azt kiirom
>> csak amikor hexa 0x4F jön, akkor egy soremelest beszurok a 0x4F utan
>>
>> 10000 kösz!
>>
>> var i: longint;
>> var b: char;
>> begin
>> writeln('start');
>>
>> while i=1 do
>> b:=ComReadChr();
>> if (b=(0x4f)) then writeln('soremeles');
>> else wite(b);
>> end;
>> end.
>>
>
> Szia Arnold!
>
> Most olvastam a fentieket.
> Neked byte -> hexa átalakítás is kell, ugye?
> Minden byte indig 2 db hexa számjegy, kivétel a 'soremeles'?
> Én pl. így csinálnám:
>
> Const
> Hex : Array[ 0 .. 15 ] Of Char = ( '0', '1', '2', '3',
> '4', '5', '6', '7',
> '8', '9', 'A', 'B',
> 'C', 'D', 'E', 'F' );
>
> Var
> b : Byte;
> hh : Char;
> hl : Char;
>
> Begin
> s := ''; // Inicializálás
> WriteLn( 'Start' ); // Indulás!
>
> While( True ) Do Begin // Végtelen ciklusban
> b := Ord(ComReadChr); // Karakter (kód) beolvasás
> hh := Hex[((b Shr 4) And $0F)]; // Felső byte hexa számjegye
> hl := Hex[(b And $0F)]; // Alsó byte hexa számjegye
> Write( hh ); // Felső hexa digit kiírása
> Write( hl ); // Alsó hexa digit kiírása
> If b = $4F Then // Ha $4F jött, akkor
> Write( $0D ); // soremelés karakter kiírása
> End;
> End.
>
HIBA!
Nem kell a
s := '';
sor! Helyette ott van alatta a WriteLn( 'Start').
Bocs, siettem!
Ja, még valami:
lehet, hogy a
b := Ord(ComReadChr);
sorban el kell hagyni az Ord-ot, ha a függvény byte típusú értéket ad vissza.
A SAMPLE1-ből ez derült ki. A pascal nagyon érzékeny a típusokra.
Üdv:
Szilárd
More information about the Elektro
mailing list