pascal kerdes

Moravcsik Szilárd mszilard at contarex.hu
Tue Sep 18 09:07:26 CEST 2007


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.

Üdv:
Szilárd



More information about the Elektro mailing list