zaher dirkey wrote:
how to use read() procedure to read multiple variable one of them is string type

To read a string and then number it is possible only if the length of a line is precisely known and fixed. I read out one string, and then I find in it numbers. Here an example for a finding of real:
--
procedure FindReal(Source: String; VAR Destign: Real;
                        VAR NBeg, CodeOp: Integer);
     CONST
     BegOfNumb: SET OF CHAR = ['0'..'9'];
     NumbChars: SET OF CHAR = ['0'..'9','E','e','+','-','.'];

     VAR
        Buf_String: String;
        Buf_Real  : Real;
        len           : Integer;
     BEGIN
                CodeOp:=-30;
             len:=LENGTH(Source);
                if (NBeg<=0) then EXIT;
                if NBeg>=len then EXIT;
       Buf_String:='';
       While (NOT (Source[NBeg] in BegOfNumb))
                AND (NBeg < len) do INC(NBeg);
        if NBeg=len then EXIT;
        if NBeg>1 then
if (Source[NBeg-1]='+') OR (Source[NBeg-1]='-') then DEC(NBeg,1);
        While (Source[NBeg] in NumbChars) AND (NBeg<=len) do
        begin
                Buf_String:=Buf_String + Source[NBeg]; INC(NBeg)
        end;
        Val(Buf_String, Buf_Real, CodeOp);
        if CodeOp=0 then Destign:=Buf_Real
     END;
---
Boris

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to