Please Help!!!!!! (Hex conversions)

Hi was wondering if anyone could help...

I need to write a function to convert a hexadecimal string to equivalent dec no, without using readln within it.

And I also need to write a procedure to input a dec no. via suitable const parameter and output the hex equivalent... In this one i can't use IntToHex or readln.

Everything I try doesn't seem to work...

I am doing this in a console application...

I would be very grateful if anyone could help me!!!

Cheers

Kel x

Comments

  • : Hi was wondering if anyone could help...
    :
    : I need to write a function to convert a hexadecimal string to equivalent dec no, without using readln within it.
    :
    : And I also need to write a procedure to input a dec no. via suitable const parameter and output the hex equivalent... In this one i can't use IntToHex or readln.
    :
    : Everything I try doesn't seem to work...
    :
    : I am doing this in a console application...
    :
    : I would be very grateful if anyone could help me!!!
    :
    : Cheers
    :
    : Kel x
    :
    This link contains the code to convert an hex string to an integer: http://www.codepedia.com/1/HexToInt
    You can modify it to suit your needs.

  • : Hi was wondering if anyone could help...
    : :
    : : I need to write a function to convert a hexadecimal string to equivalent dec no, without using readln within it.
    : :
    : : And I also need to write a procedure to input a dec no. via suitable const parameter and output the hex equivalent... In this one i can't use IntToHex or readln.
    : :
    : : Everything I try doesn't seem to work...
    : :
    : : I am doing this in a console application...
    : :
    : : I would be very grateful if anyone could help me!!!
    : :
    : : Cheers
    : :
    : : Kel x
    : :
    : This link contains the code to convert an hex string to an integer: http://www.codepedia.com/1/HexToInt
    : You can modify it to suit your needs.

    Cheers, for that!

    Been trying to work through it and have this in my program so far, just trying to demonstrate it... could you perhaps give me an idea as to why this isn't working?

    program Test4;

    {$APPTYPE CONSOLE}

    uses
    SysUtils;
    var
    user, HexStr: string;
    prop : char;
    const
    HexValues='0123456789ABCDEF';

    function HexToDec(Hexstr: string): integer;
    var
    i: integer;
    begin
    Result := 0;
    case Length(Hexstr) of
    0: Result := 0;
    1..8: for i:=1 to Length(Hexstr) do
    Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    else for i:=1 to 8 do
    Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    end;
    end;
    begin
    writeln ('Please enter the Hex number you wish to convert...');
    readln (user);
    user := (Hexstr);
    HexToDec;

    readln (prop);

    end.

    Cheers
    Kel
    :

  • :
    : : Hi was wondering if anyone could help...
    : : :
    : : : I need to write a function to convert a hexadecimal string to equivalent dec no, without using readln within it.
    : : :
    : : : And I also need to write a procedure to input a dec no. via suitable const parameter and output the hex equivalent... In this one i can't use IntToHex or readln.
    : : :
    : : : Everything I try doesn't seem to work...
    : : :
    : : : I am doing this in a console application...
    : : :
    : : : I would be very grateful if anyone could help me!!!
    : : :
    : : : Cheers
    : : :
    : : : Kel x
    : : :
    : : This link contains the code to convert an hex string to an integer: http://www.codepedia.com/1/HexToInt
    : : You can modify it to suit your needs.
    :
    : Cheers, for that!
    :
    : Been trying to work through it and have this in my program so far, just trying to demonstrate it... could you perhaps give me an idea as to why this isn't working?
    : [code]
    : program Test4;
    :
    : {$APPTYPE CONSOLE}
    :
    : uses
    : SysUtils;
    : var
    : user, HexStr: string;
    : prop : char;
    : const
    : HexValues='0123456789ABCDEF';
    :
    : function HexToDec(Hexstr: string): integer;
    : var
    : i: integer;
    : begin
    : Result := 0;
    : case Length(Hexstr) of
    : 0: Result := 0;
    : 1..8: for i:=1 to Length(Hexstr) do
    : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : else for i:=1 to 8 do
    : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : end;
    : end;
    : begin
    : writeln ('Please enter the Hex number you wish to convert...');
    : readln (user);
    : user := (Hexstr); { This line overwrites the user input with a non-existing value }
    : HexToDec; { This line does converts the value, but does not show the results to the user }
    :
    : readln (prop);
    :
    : end.
    : [/code]
    : Cheers
    : Kel
    : :
    :
    :
    I've included some comments in the code, where there are errors.
  • : :
    : : : Hi was wondering if anyone could help...
    : : : :
    : : : : I need to write a function to convert a hexadecimal string to equivalent dec no, without using readln within it.
    : : : :
    : : : : And I also need to write a procedure to input a dec no. via suitable const parameter and output the hex equivalent... In this one i can't use IntToHex or readln.
    : : : :
    : : : : Everything I try doesn't seem to work...
    : : : :
    : : : : I am doing this in a console application...
    : : : :
    : : : : I would be very grateful if anyone could help me!!!
    : : : :
    : : : : Cheers
    : : : :
    : : : : Kel x
    : : : :
    : : : This link contains the code to convert an hex string to an integer: http://www.codepedia.com/1/HexToInt
    : : : You can modify it to suit your needs.
    : :
    : : Cheers, for that!
    : :
    : : Been trying to work through it and have this in my program so far, just trying to demonstrate it... could you perhaps give me an idea as to why this isn't working?
    : : [code]
    : : program Test4;
    : :
    : : {$APPTYPE CONSOLE}
    : :
    : : uses
    : : SysUtils;
    : : var
    : : user, HexStr: string;
    : : prop : char;
    : : const
    : : HexValues='0123456789ABCDEF';
    : :
    : : function HexToDec(Hexstr: string): integer;
    : : var
    : : i: integer;
    : : begin
    : : Result := 0;
    : : case Length(Hexstr) of
    : : 0: Result := 0;
    : : 1..8: for i:=1 to Length(Hexstr) do
    : : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : : else for i:=1 to 8 do
    : : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : : end;
    : : end;
    : : begin
    : : writeln ('Please enter the Hex number you wish to convert...');
    : : readln (user);
    : : user := (Hexstr); { This line overwrites the user input with a non-existing value }
    : : HexToDec; { This line does converts the value, but does not show the results to the user }
    : :
    : : readln (prop);
    : :
    : : end.
    : : [/code]
    : : Cheers
    : : Kel
    : : :
    : :
    : :
    : I've included some comments in the code, where there are errors.
    :
    How do I relate the user input to the function so that when i call it they work together?
  • : : :
    : : : : Hi was wondering if anyone could help...
    : : : : :
    : : : : : I need to write a function to convert a hexadecimal string to equivalent dec no, without using readln within it.
    : : : : :
    : : : : : And I also need to write a procedure to input a dec no. via suitable const parameter and output the hex equivalent... In this one i can't use IntToHex or readln.
    : : : : :
    : : : : : Everything I try doesn't seem to work...
    : : : : :
    : : : : : I am doing this in a console application...
    : : : : :
    : : : : : I would be very grateful if anyone could help me!!!
    : : : : :
    : : : : : Cheers
    : : : : :
    : : : : : Kel x
    : : : : :
    : : : : This link contains the code to convert an hex string to an integer: http://www.codepedia.com/1/HexToInt
    : : : : You can modify it to suit your needs.
    : : :
    : : : Cheers, for that!
    : : :
    : : : Been trying to work through it and have this in my program so far, just trying to demonstrate it... could you perhaps give me an idea as to why this isn't working?
    : : : [code]
    : : : program Test4;
    : : :
    : : : {$APPTYPE CONSOLE}
    : : :
    : : : uses
    : : : SysUtils;
    : : : var
    : : : user, HexStr: string;
    : : : prop : char;
    : : : const
    : : : HexValues='0123456789ABCDEF';
    : : :
    : : : function HexToDec(Hexstr: string): integer;
    : : : var
    : : : i: integer;
    : : : begin
    : : : Result := 0;
    : : : case Length(Hexstr) of
    : : : 0: Result := 0;
    : : : 1..8: for i:=1 to Length(Hexstr) do
    : : : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : : : else for i:=1 to 8 do
    : : : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : : : end;
    : : : end;
    : : : begin
    : : : writeln ('Please enter the Hex number you wish to convert...');
    : : : readln (user);
    : : : user := (Hexstr); { This line overwrites the user input with a non-existing value }
    : : : HexToDec; { This line does converts the value, but does not show the results to the user }
    : : :
    : : : readln (prop);
    : : :
    : : : end.
    : : : [/code]
    : : : Cheers
    : : : Kel
    : : : :
    : : :
    : : :
    : : I've included some comments in the code, where there are errors.
    : :
    : How do I relate the user input to the function so that when i call it they work together?
    :
    That's what the function parameter is for. But you could also remove the function call, and directly use the code inside the function.
  • : : : :
    : : : : : Hi was wondering if anyone could help...
    : : : : : :
    : : : : : : I need to write a function to convert a hexadecimal string to equivalent dec no, without using readln within it.
    : : : : : :
    : : : : : : And I also need to write a procedure to input a dec no. via suitable const parameter and output the hex equivalent... In this one i can't use IntToHex or readln.
    : : : : : :
    : : : : : : Everything I try doesn't seem to work...
    : : : : : :
    : : : : : : I am doing this in a console application...
    : : : : : :
    : : : : : : I would be very grateful if anyone could help me!!!
    : : : : : :
    : : : : : : Cheers
    : : : : : :
    : : : : : : Kel x
    : : : : : :
    : : : : : This link contains the code to convert an hex string to an integer: http://www.codepedia.com/1/HexToInt
    : : : : : You can modify it to suit your needs.
    : : : :
    : : : : Cheers, for that!
    : : : :
    : : : : Been trying to work through it and have this in my program so far, just trying to demonstrate it... could you perhaps give me an idea as to why this isn't working?
    : : : : [code]
    : : : : program Test4;
    : : : :
    : : : : {$APPTYPE CONSOLE}
    : : : :
    : : : : uses
    : : : : SysUtils;
    : : : : var
    : : : : user, HexStr: string;
    : : : : prop : char;
    : : : : const
    : : : : HexValues='0123456789ABCDEF';
    : : : :
    : : : : function HexToDec(Hexstr: string): integer;
    : : : : var
    : : : : i: integer;
    : : : : begin
    : : : : Result := 0;
    : : : : case Length(Hexstr) of
    : : : : 0: Result := 0;
    : : : : 1..8: for i:=1 to Length(Hexstr) do
    : : : : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : : : : else for i:=1 to 8 do
    : : : : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : : : : end;
    : : : : end;
    : : : : begin
    : : : : writeln ('Please enter the Hex number you wish to convert...');
    : : : : readln (user);
    : : : : user := (Hexstr); { This line overwrites the user input with a non-existing value }
    : : : : HexToDec; { This line does converts the value, but does not show the results to the user }
    : : : :
    : : : : readln (prop);
    : : : :
    : : : : end.
    : : : : [/code]
    : : : : Cheers
    : : : : Kel
    : : : : :
    : : : :
    : : : :
    : : : I've included some comments in the code, where there are errors.
    : : :
    : : How do I relate the user input to the function so that when i call it they work together?
    : :
    : That's what the function parameter is for. But you could also remove the function call, and directly use the code inside the function.
    :
    so the function parameter is i?? I still can't work out how I can transfer the user input to this...
    I'm sorry to be a pain, I just really don't get what I can put to read the value in so that i can then call the function and they will work together... ineed to do this with a function...
  • : : : : :
    : : : : : : Hi was wondering if anyone could help...
    : : : : : : :
    : : : : : : : I need to write a function to convert a hexadecimal string to equivalent dec no, without using readln within it.
    : : : : : : :
    : : : : : : : And I also need to write a procedure to input a dec no. via suitable const parameter and output the hex equivalent... In this one i can't use IntToHex or readln.
    : : : : : : :
    : : : : : : : Everything I try doesn't seem to work...
    : : : : : : :
    : : : : : : : I am doing this in a console application...
    : : : : : : :
    : : : : : : : I would be very grateful if anyone could help me!!!
    : : : : : : :
    : : : : : : : Cheers
    : : : : : : :
    : : : : : : : Kel x
    : : : : : : :
    : : : : : : This link contains the code to convert an hex string to an integer: http://www.codepedia.com/1/HexToInt
    : : : : : : You can modify it to suit your needs.
    : : : : :
    : : : : : Cheers, for that!
    : : : : :
    : : : : : Been trying to work through it and have this in my program so far, just trying to demonstrate it... could you perhaps give me an idea as to why this isn't working?
    : : : : : [code]
    : : : : : program Test4;
    : : : : :
    : : : : : {$APPTYPE CONSOLE}
    : : : : :
    : : : : : uses
    : : : : : SysUtils;
    : : : : : var
    : : : : : user, HexStr: string;
    : : : : : prop : char;
    : : : : : const
    : : : : : HexValues='0123456789ABCDEF';
    : : : : :
    : : : : : function HexToDec(Hexstr: string): integer;
    : : : : : var
    : : : : : i: integer;
    : : : : : begin
    : : : : : Result := 0;
    : : : : : case Length(Hexstr) of
    : : : : : 0: Result := 0;
    : : : : : 1..8: for i:=1 to Length(Hexstr) do
    : : : : : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : : : : : else for i:=1 to 8 do
    : : : : : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : : : : : end;
    : : : : : end;
    : : : : : begin
    : : : : : writeln ('Please enter the Hex number you wish to convert...');
    : : : : : readln (user);
    : : : : : user := (Hexstr); { This line overwrites the user input with a non-existing value }
    : : : : : HexToDec; { This line does converts the value, but does not show the results to the user }
    : : : : :
    : : : : : readln (prop);
    : : : : :
    : : : : : end.
    : : : : : [/code]
    : : : : : Cheers
    : : : : : Kel
    : : : : : :
    : : : : :
    : : : : :
    : : : : I've included some comments in the code, where there are errors.
    : : : :
    : : : How do I relate the user input to the function so that when i call it they work together?
    : : :
    : : That's what the function parameter is for. But you could also remove the function call, and directly use the code inside the function.
    : :
    : so the function parameter is i?? I still can't work out how I can transfer the user input to this...
    : I'm sorry to be a pain, I just really don't get what I can put to read the value in so that i can then call the function and they will work together... ineed to do this with a function...




    Right, I've been working on it and I think I'm almost there just can't get the last bit sorted, could you just take a look at the code now as i think i'm declaring something wrong somewhere... thanks

    program Test4;

    {$APPTYPE CONSOLE}

    uses
    SysUtils;
    var
    user, i: string;
    prop : char;
    Hexstr : string;
    result, answer : string;

    function HexToDec(Hexstr: string): integer;
    const
    HexValues='0123456789ABCDEF';
    var
    i: integer;
    begin
    Result := 0;
    case Length(Hexstr) of
    0: Result := 0;
    1..8: for i:=1 to Length(Hexstr) do
    Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    else for i:=1 to 8 do
    Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    end;
    end;
    begin
    writeln ('Please enter the Hex number you wish to convert...');
    readln (user);
    user:= Hexstr;
    HexToDec (Hexstr);

    Answer := HexToDec(Result);
    writeln (answer);
    readln (prop);

    end.

    :

  • : : : : : :
    : : : : : : : Hi was wondering if anyone could help...
    : : : : : : : :
    : : : : : : : : I need to write a function to convert a hexadecimal string to equivalent dec no, without using readln within it.
    : : : : : : : :
    : : : : : : : : And I also need to write a procedure to input a dec no. via suitable const parameter and output the hex equivalent... In this one i can't use IntToHex or readln.
    : : : : : : : :
    : : : : : : : : Everything I try doesn't seem to work...
    : : : : : : : :
    : : : : : : : : I am doing this in a console application...
    : : : : : : : :
    : : : : : : : : I would be very grateful if anyone could help me!!!
    : : : : : : : :
    : : : : : : : : Cheers
    : : : : : : : :
    : : : : : : : : Kel x
    : : : : : : : :
    : : : : : : : This link contains the code to convert an hex string to an integer: http://www.codepedia.com/1/HexToInt
    : : : : : : : You can modify it to suit your needs.
    : : : : : :
    : : : : : : Cheers, for that!
    : : : : : :
    : : : : : : Been trying to work through it and have this in my program so far, just trying to demonstrate it... could you perhaps give me an idea as to why this isn't working?
    : : : : : : [code]
    : : : : : : program Test4;
    : : : : : :
    : : : : : : {$APPTYPE CONSOLE}
    : : : : : :
    : : : : : : uses
    : : : : : : SysUtils;
    : : : : : : var
    : : : : : : user, HexStr: string;
    : : : : : : prop : char;
    : : : : : : const
    : : : : : : HexValues='0123456789ABCDEF';
    : : : : : :
    : : : : : : function HexToDec(Hexstr: string): integer;
    : : : : : : var
    : : : : : : i: integer;
    : : : : : : begin
    : : : : : : Result := 0;
    : : : : : : case Length(Hexstr) of
    : : : : : : 0: Result := 0;
    : : : : : : 1..8: for i:=1 to Length(Hexstr) do
    : : : : : : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : : : : : : else for i:=1 to 8 do
    : : : : : : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : : : : : : end;
    : : : : : : end;
    : : : : : : begin
    : : : : : : writeln ('Please enter the Hex number you wish to convert...');
    : : : : : : readln (user);
    : : : : : : user := (Hexstr); { This line overwrites the user input with a non-existing value }
    : : : : : : HexToDec; { This line does converts the value, but does not show the results to the user }
    : : : : : :
    : : : : : : readln (prop);
    : : : : : :
    : : : : : : end.
    : : : : : : [/code]
    : : : : : : Cheers
    : : : : : : Kel
    : : : : : : :
    : : : : : :
    : : : : : :
    : : : : : I've included some comments in the code, where there are errors.
    : : : : :
    : : : : How do I relate the user input to the function so that when i call it they work together?
    : : : :
    : : : That's what the function parameter is for. But you could also remove the function call, and directly use the code inside the function.
    : : :
    : : so the function parameter is i?? I still can't work out how I can transfer the user input to this...
    : : I'm sorry to be a pain, I just really don't get what I can put to read the value in so that i can then call the function and they will work together... ineed to do this with a function...
    :
    :
    :
    :
    : Right, I've been working on it and I think I'm almost there just can't get the last bit sorted, could you just take a look at the code now as i think i'm declaring something wrong somewhere... thanks
    :
    : program Test4;
    :
    : {$APPTYPE CONSOLE}
    :
    : uses
    : SysUtils;
    : var
    : user, i: string;
    : prop : char;
    : Hexstr : string;
    : result, answer : string;
    :
    : function HexToDec(Hexstr: string): integer;
    : const
    : HexValues='0123456789ABCDEF';
    : var
    : i: integer;
    : begin
    : Result := 0;
    : case Length(Hexstr) of
    : 0: Result := 0;
    : 1..8: for i:=1 to Length(Hexstr) do
    : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : else for i:=1 to 8 do
    : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : end;
    : end;
    : begin
    : writeln ('Please enter the Hex number you wish to convert...');
    : readln (user);
    : user:= Hexstr;
    : HexToDec (Hexstr);
    :
    : Answer := HexToDec(Result);
    : writeln (answer);
    : readln (prop);
    :
    : end.
    :
    : :
    :
    :
    A function returns it's result as part of it's own call. Thus this call:
    [code]
    Answer := HexToDec(HexStr);
    [/code]
    will convert the value. The computer will process it as if it were written like this:
    [code]
    HexStr { The parameter } := HexStr { The variable }
    Result := 0;
    case Length(Hexstr) of
    0: Result := 0;
    1..8: for i:=1 to Length(Hexstr) do
    Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    else for i:=1 to 8 do
    Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    end;
    Answer := Result;
    [/code]
    Also the symbol ":=" stands for the english "verb": "is filled with". Thus this code:
    [code]
    User := HexStr;
    [/code]
    can be translated in to the english sentence:
    [code]
    User is filled with HexStr.
    [/code]
    where both user and HexStr are seen as containers holding a certain value.
  • : : : : : : :
    : : : : : : : : Hi was wondering if anyone could help...
    : : : : : : : : :
    : : : : : : : : : I need to write a function to convert a hexadecimal string to equivalent dec no, without using readln within it.
    : : : : : : : : :
    : : : : : : : : : And I also need to write a procedure to input a dec no. via suitable const parameter and output the hex equivalent... In this one i can't use IntToHex or readln.
    : : : : : : : : :
    : : : : : : : : : Everything I try doesn't seem to work...
    : : : : : : : : :
    : : : : : : : : : I am doing this in a console application...
    : : : : : : : : :
    : : : : : : : : : I would be very grateful if anyone could help me!!!
    : : : : : : : : :
    : : : : : : : : : Cheers
    : : : : : : : : :
    : : : : : : : : : Kel x
    : : : : : : : : :
    : : : : : : : : This link contains the code to convert an hex string to an integer: http://www.codepedia.com/1/HexToInt
    : : : : : : : : You can modify it to suit your needs.
    : : : : : : :
    : : : : : : : Cheers, for that!
    : : : : : : :
    : : : : : : : Been trying to work through it and have this in my program so far, just trying to demonstrate it... could you perhaps give me an idea as to why this isn't working?
    : : : : : : : [code]
    : : : : : : : program Test4;
    : : : : : : :
    : : : : : : : {$APPTYPE CONSOLE}
    : : : : : : :
    : : : : : : : uses
    : : : : : : : SysUtils;
    : : : : : : : var
    : : : : : : : user, HexStr: string;
    : : : : : : : prop : char;
    : : : : : : : const
    : : : : : : : HexValues='0123456789ABCDEF';
    : : : : : : :
    : : : : : : : function HexToDec(Hexstr: string): integer;
    : : : : : : : var
    : : : : : : : i: integer;
    : : : : : : : begin
    : : : : : : : Result := 0;
    : : : : : : : case Length(Hexstr) of
    : : : : : : : 0: Result := 0;
    : : : : : : : 1..8: for i:=1 to Length(Hexstr) do
    : : : : : : : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : : : : : : : else for i:=1 to 8 do
    : : : : : : : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : : : : : : : end;
    : : : : : : : end;
    : : : : : : : begin
    : : : : : : : writeln ('Please enter the Hex number you wish to convert...');
    : : : : : : : readln (user);
    : : : : : : : user := (Hexstr); { This line overwrites the user input with a non-existing value }
    : : : : : : : HexToDec; { This line does converts the value, but does not show the results to the user }
    : : : : : : :
    : : : : : : : readln (prop);
    : : : : : : :
    : : : : : : : end.
    : : : : : : : [/code]
    : : : : : : : Cheers
    : : : : : : : Kel
    : : : : : : : :
    : : : : : : :
    : : : : : : :
    : : : : : : I've included some comments in the code, where there are errors.
    : : : : : :
    : : : : : How do I relate the user input to the function so that when i call it they work together?
    : : : : :
    : : : : That's what the function parameter is for. But you could also remove the function call, and directly use the code inside the function.
    : : : :
    : : : so the function parameter is i?? I still can't work out how I can transfer the user input to this...
    : : : I'm sorry to be a pain, I just really don't get what I can put to read the value in so that i can then call the function and they will work together... ineed to do this with a function...
    : :
    : :
    : :
    : :
    : : Right, I've been working on it and I think I'm almost there just can't get the last bit sorted, could you just take a look at the code now as i think i'm declaring something wrong somewhere... thanks
    : :
    : : program Test4;
    : :
    : : {$APPTYPE CONSOLE}
    : :
    : : uses
    : : SysUtils;
    : : var
    : : user, i: string;
    : : prop : char;
    : : Hexstr : string;
    : : result, answer : string;
    : :
    : : function HexToDec(Hexstr: string): integer;
    : : const
    : : HexValues='0123456789ABCDEF';
    : : var
    : : i: integer;
    : : begin
    : : Result := 0;
    : : case Length(Hexstr) of
    : : 0: Result := 0;
    : : 1..8: for i:=1 to Length(Hexstr) do
    : : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : : else for i:=1 to 8 do
    : : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : : end;
    : : end;
    : : begin
    : : writeln ('Please enter the Hex number you wish to convert...');
    : : readln (user);
    : : user:= Hexstr;
    : : HexToDec (Hexstr);
    : :
    : : Answer := HexToDec(Result);
    : : writeln (answer);
    : : readln (prop);
    : :
    : : end.
    : :
    : : :
    : :
    : :
    : A function returns it's result as part of it's own call. Thus this call:
    : [code]
    : Answer := HexToDec(HexStr);
    : [/code]
    : will convert the value. The computer will process it as if it were written like this:
    : [code]
    : HexStr { The parameter } := HexStr { The variable }
    : Result := 0;
    : case Length(Hexstr) of
    : 0: Result := 0;
    : 1..8: for i:=1 to Length(Hexstr) do
    : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : else for i:=1 to 8 do
    : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : end;
    : Answer := Result;
    : [/code]
    : Also the symbol ":=" stands for the english "verb": "is filled with". Thus this code:
    : [code]
    : User := HexStr;
    : [/code]
    : can be translated in to the english sentence:
    : [code]
    : User is filled with HexStr.
    : [/code]
    : where both user and HexStr are seen as containers holding a certain value.
    : So, would it work by changing the ':=' to an '='?
    I just can't see how the function can relate/accept and deal with the user input?

  • : : : : : : : :
    : : : : : : : : : Hi was wondering if anyone could help...
    : : : : : : : : : :
    : : : : : : : : : : I need to write a function to convert a hexadecimal string to equivalent dec no, without using readln within it.
    : : : : : : : : : :
    : : : : : : : : : : And I also need to write a procedure to input a dec no. via suitable const parameter and output the hex equivalent... In this one i can't use IntToHex or readln.
    : : : : : : : : : :
    : : : : : : : : : : Everything I try doesn't seem to work...
    : : : : : : : : : :
    : : : : : : : : : : I am doing this in a console application...
    : : : : : : : : : :
    : : : : : : : : : : I would be very grateful if anyone could help me!!!
    : : : : : : : : : :
    : : : : : : : : : : Cheers
    : : : : : : : : : :
    : : : : : : : : : : Kel x
    : : : : : : : : : :
    : : : : : : : : : This link contains the code to convert an hex string to an integer: http://www.codepedia.com/1/HexToInt
    : : : : : : : : : You can modify it to suit your needs.
    : : : : : : : :
    : : : : : : : : Cheers, for that!
    : : : : : : : :
    : : : : : : : : Been trying to work through it and have this in my program so far, just trying to demonstrate it... could you perhaps give me an idea as to why this isn't working?
    : : : : : : : : [code]
    : : : : : : : : program Test4;
    : : : : : : : :
    : : : : : : : : {$APPTYPE CONSOLE}
    : : : : : : : :
    : : : : : : : : uses
    : : : : : : : : SysUtils;
    : : : : : : : : var
    : : : : : : : : user, HexStr: string;
    : : : : : : : : prop : char;
    : : : : : : : : const
    : : : : : : : : HexValues='0123456789ABCDEF';
    : : : : : : : :
    : : : : : : : : function HexToDec(Hexstr: string): integer;
    : : : : : : : : var
    : : : : : : : : i: integer;
    : : : : : : : : begin
    : : : : : : : : Result := 0;
    : : : : : : : : case Length(Hexstr) of
    : : : : : : : : 0: Result := 0;
    : : : : : : : : 1..8: for i:=1 to Length(Hexstr) do
    : : : : : : : : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : : : : : : : : else for i:=1 to 8 do
    : : : : : : : : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : : : : : : : : end;
    : : : : : : : : end;
    : : : : : : : : begin
    : : : : : : : : writeln ('Please enter the Hex number you wish to convert...');
    : : : : : : : : readln (user);
    : : : : : : : : user := (Hexstr); { This line overwrites the user input with a non-existing value }
    : : : : : : : : HexToDec; { This line does converts the value, but does not show the results to the user }
    : : : : : : : :
    : : : : : : : : readln (prop);
    : : : : : : : :
    : : : : : : : : end.
    : : : : : : : : [/code]
    : : : : : : : : Cheers
    : : : : : : : : Kel
    : : : : : : : : :
    : : : : : : : :
    : : : : : : : :
    : : : : : : : I've included some comments in the code, where there are errors.
    : : : : : : :
    : : : : : : How do I relate the user input to the function so that when i call it they work together?
    : : : : : :
    : : : : : That's what the function parameter is for. But you could also remove the function call, and directly use the code inside the function.
    : : : : :
    : : : : so the function parameter is i?? I still can't work out how I can transfer the user input to this...
    : : : : I'm sorry to be a pain, I just really don't get what I can put to read the value in so that i can then call the function and they will work together... ineed to do this with a function...
    : : :
    : : :
    : : :
    : : :
    : : : Right, I've been working on it and I think I'm almost there just can't get the last bit sorted, could you just take a look at the code now as i think i'm declaring something wrong somewhere... thanks
    : : :
    : : : program Test4;
    : : :
    : : : {$APPTYPE CONSOLE}
    : : :
    : : : uses
    : : : SysUtils;
    : : : var
    : : : user, i: string;
    : : : prop : char;
    : : : Hexstr : string;
    : : : result, answer : string;
    : : :
    : : : function HexToDec(Hexstr: string): integer;
    : : : const
    : : : HexValues='0123456789ABCDEF';
    : : : var
    : : : i: integer;
    : : : begin
    : : : Result := 0;
    : : : case Length(Hexstr) of
    : : : 0: Result := 0;
    : : : 1..8: for i:=1 to Length(Hexstr) do
    : : : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : : : else for i:=1 to 8 do
    : : : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : : : end;
    : : : end;
    : : : begin
    : : : writeln ('Please enter the Hex number you wish to convert...');
    : : : readln (user);
    : : : user:= Hexstr;
    : : : HexToDec (Hexstr);
    : : :
    : : : Answer := HexToDec(Result);
    : : : writeln (answer);
    : : : readln (prop);
    : : :
    : : : end.
    : : :
    : : : :
    : : :
    : : :
    : : A function returns it's result as part of it's own call. Thus this call:
    : : [code]
    : : Answer := HexToDec(HexStr);
    : : [/code]
    : : will convert the value. The computer will process it as if it were written like this:
    : : [code]
    : : HexStr { The parameter } := HexStr { The variable }
    : : Result := 0;
    : : case Length(Hexstr) of
    : : 0: Result := 0;
    : : 1..8: for i:=1 to Length(Hexstr) do
    : : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : : else for i:=1 to 8 do
    : : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : : end;
    : : Answer := Result;
    : : [/code]
    : : Also the symbol ":=" stands for the english "verb": "is filled with". Thus this code:
    : : [code]
    : : User := HexStr;
    : : [/code]
    : : can be translated in to the english sentence:
    : : [code]
    : : User is filled with HexStr.
    : : [/code]
    : : where both user and HexStr are seen as containers holding a certain value.
    : : So, would it work by changing the ':=' to an '='?
    : I just can't see how the function can relate/accept and deal with the user input?
    :
    :
    The problem is that you have made another error, which [b]overwrites[/b] the user input with garbage. This stops the function from relating with the input. See the explanation above.
  • : : : : : : :
    : : : : : : : : Hi was wondering if anyone could help...
    : : : : : : : : :
    : : : : : : : : : I need to write a function to convert a hexadecimal string to equivalent dec no, without using readln within it.
    : : : : : : : : :
    : : : : : : : : : And I also need to write a procedure to input a dec no. via suitable const parameter and output the hex equivalent... In this one i can't use IntToHex or readln.
    : : : : : : : : :
    : : : : : : : : : Everything I try doesn't seem to work...
    : : : : : : : : :
    : : : : : : : : : I am doing this in a console application...
    : : : : : : : : :
    : : : : : : : : : I would be very grateful if anyone could help me!!!
    : : : : : : : : :
    : : : : : : : : : Cheers
    : : : : : : : : :
    : : : : : : : : : Kel x
    : : : : : : : : :
    : : : : : : : : This link contains the code to convert an hex string to an integer: http://www.codepedia.com/1/HexToInt
    : : : : : : : : You can modify it to suit your needs.
    : : : : : : :
    : : : : : : : Cheers, for that!
    : : : : : : :
    : : : : : : : Been trying to work through it and have this in my program so far, just trying to demonstrate it... could you perhaps give me an idea as to why this isn't working?
    : : : : : : : [code]
    : : : : : : : program Test4;
    : : : : : : :
    : : : : : : : {$APPTYPE CONSOLE}
    : : : : : : :
    : : : : : : : uses
    : : : : : : : SysUtils;
    : : : : : : : var
    : : : : : : : user, HexStr: string;
    : : : : : : : prop : char;
    : : : : : : : const
    : : : : : : : HexValues='0123456789ABCDEF';
    : : : : : : :
    : : : : : : : function HexToDec(Hexstr: string): integer;
    : : : : : : : var
    : : : : : : : i: integer;
    : : : : : : : begin
    : : : : : : : Result := 0;
    : : : : : : : case Length(Hexstr) of
    : : : : : : : 0: Result := 0;
    : : : : : : : 1..8: for i:=1 to Length(Hexstr) do
    : : : : : : : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : : : : : : : else for i:=1 to 8 do
    : : : : : : : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : : : : : : : end;
    : : : : : : : end;
    : : : : : : : begin
    : : : : : : : writeln ('Please enter the Hex number you wish to convert...');
    : : : : : : : readln (user);
    : : : : : : : user := (Hexstr); { This line overwrites the user input with a non-existing value }
    : : : : : : : HexToDec; { This line does converts the value, but does not show the results to the user }
    : : : : : : :
    : : : : : : : readln (prop);
    : : : : : : :
    : : : : : : : end.
    : : : : : : : [/code]
    : : : : : : : Cheers
    : : : : : : : Kel
    : : : : : : : :
    : : : : : : :
    : : : : : : :
    : : : : : : I've included some comments in the code, where there are errors.
    : : : : : :
    : : : : : How do I relate the user input to the function so that when i call it they work together?
    : : : : :
    : : : : That's what the function parameter is for. But you could also remove the function call, and directly use the code inside the function.
    : : : :
    : : : so the function parameter is i?? I still can't work out how I can transfer the user input to this...
    : : : I'm sorry to be a pain, I just really don't get what I can put to read the value in so that i can then call the function and they will work together... ineed to do this with a function...
    : :
    : :
    : :
    : :
    : : Right, I've been working on it and I think I'm almost there just can't get the last bit sorted, could you just take a look at the code now as i think i'm declaring something wrong somewhere... thanks
    : :
    : : program Test4;
    : :
    : : {$APPTYPE CONSOLE}
    : :
    : : uses
    : : SysUtils;
    : : var
    : : user, i: string;
    : : prop : char;
    : : Hexstr : string;
    : : result, answer : string;
    : :
    : : function HexToDec(Hexstr: string): integer;
    : : const
    : : HexValues='0123456789ABCDEF';
    : : var
    : : i: integer;
    : : begin
    : : Result := 0;
    : : case Length(Hexstr) of
    : : 0: Result := 0;
    : : 1..8: for i:=1 to Length(Hexstr) do
    : : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : : else for i:=1 to 8 do
    : : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : : end;
    : : end;
    : : begin
    : : writeln ('Please enter the Hex number you wish to convert...');
    : : readln (user);
    : : user:= Hexstr;
    : : HexToDec (Hexstr);
    : :
    : : Answer := HexToDec(Result);
    : : writeln (answer);
    : : readln (prop);
    : :
    : : end.
    : :
    : : :
    : :
    : :
    : A function returns it's result as part of it's own call. Thus this call:
    : [code]
    : Answer := HexToDec(HexStr);
    : [/code]
    : will convert the value. The computer will process it as if it were written like this:
    : [code]
    : HexStr { The parameter } := HexStr { The variable }
    : Result := 0;
    : case Length(Hexstr) of
    : 0: Result := 0;
    : 1..8: for i:=1 to Length(Hexstr) do
    : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : else for i:=1 to 8 do
    : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : end;
    : Answer := Result;
    : [/code]
    : Also the symbol ":=" stands for the english "verb": "is filled with". Thus this code:
    : [code]
    : User := HexStr;
    : [/code]
    : can be translated in to the english sentence:
    : [code]
    : User is filled with HexStr.
    : [/code]
    : where both user and HexStr are seen as containers holding a certain value.
    :

    Right I now have modified my program and it seemed as though it might work this time as it is now giving back a result....

    But it's not the right result...

    Here's what I have now, you have any hints on how I can get it to return the correct decimal number to the Hex input??

    program Test4;

    {$APPTYPE CONSOLE}

    uses
    SysUtils;
    var
    user, Hexstr: string;
    prop : char;
    result : integer;


    function HexToDec(Hexstr: string): integer;
    const
    HexValues='0123456789ABCDEF';
    var
    i: integer;
    begin
    Result := 0;
    case Length(Hexstr) of
    0: Result := 0;
    1..8: for i:=1 to Length(Hexstr) do
    Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    else for i:=1 to 8 do
    Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    end;
    end;
    begin
    writeln ('Please enter the Hex number you wish to convert...');
    readln (user);

    HexToDec (Hexstr);
    writeln (Result);

    readln (prop);

    end.


    Thank-you for all your help it is really appreciated!
  • : : : : : : : :
    : : : : : : : : : Hi was wondering if anyone could help...
    : : : : : : : : : :
    : : : : : : : : : : I need to write a function to convert a hexadecimal string to equivalent dec no, without using readln within it.
    : : : : : : : : : :
    : : : : : : : : : : And I also need to write a procedure to input a dec no. via suitable const parameter and output the hex equivalent... In this one i can't use IntToHex or readln.
    : : : : : : : : : :
    : : : : : : : : : : Everything I try doesn't seem to work...
    : : : : : : : : : :
    : : : : : : : : : : I am doing this in a console application...
    : : : : : : : : : :
    : : : : : : : : : : I would be very grateful if anyone could help me!!!
    : : : : : : : : : :
    : : : : : : : : : : Cheers
    : : : : : : : : : :
    : : : : : : : : : : Kel x
    : : : : : : : : : :
    : : : : : : : : : This link contains the code to convert an hex string to an integer: http://www.codepedia.com/1/HexToInt
    : : : : : : : : : You can modify it to suit your needs.
    : : : : : : : :
    : : : : : : : : Cheers, for that!
    : : : : : : : :
    : : : : : : : : Been trying to work through it and have this in my program so far, just trying to demonstrate it... could you perhaps give me an idea as to why this isn't working?
    : : : : : : : : [code]
    : : : : : : : : program Test4;
    : : : : : : : :
    : : : : : : : : {$APPTYPE CONSOLE}
    : : : : : : : :
    : : : : : : : : uses
    : : : : : : : : SysUtils;
    : : : : : : : : var
    : : : : : : : : user, HexStr: string;
    : : : : : : : : prop : char;
    : : : : : : : : const
    : : : : : : : : HexValues='0123456789ABCDEF';
    : : : : : : : :
    : : : : : : : : function HexToDec(Hexstr: string): integer;
    : : : : : : : : var
    : : : : : : : : i: integer;
    : : : : : : : : begin
    : : : : : : : : Result := 0;
    : : : : : : : : case Length(Hexstr) of
    : : : : : : : : 0: Result := 0;
    : : : : : : : : 1..8: for i:=1 to Length(Hexstr) do
    : : : : : : : : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : : : : : : : : else for i:=1 to 8 do
    : : : : : : : : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : : : : : : : : end;
    : : : : : : : : end;
    : : : : : : : : begin
    : : : : : : : : writeln ('Please enter the Hex number you wish to convert...');
    : : : : : : : : readln (user);
    : : : : : : : : user := (Hexstr); { This line overwrites the user input with a non-existing value }
    : : : : : : : : HexToDec; { This line does converts the value, but does not show the results to the user }
    : : : : : : : :
    : : : : : : : : readln (prop);
    : : : : : : : :
    : : : : : : : : end.
    : : : : : : : : [/code]
    : : : : : : : : Cheers
    : : : : : : : : Kel
    : : : : : : : : :
    : : : : : : : :
    : : : : : : : :
    : : : : : : : I've included some comments in the code, where there are errors.
    : : : : : : :
    : : : : : : How do I relate the user input to the function so that when i call it they work together?
    : : : : : :
    : : : : : That's what the function parameter is for. But you could also remove the function call, and directly use the code inside the function.
    : : : : :
    : : : : so the function parameter is i?? I still can't work out how I can transfer the user input to this...
    : : : : I'm sorry to be a pain, I just really don't get what I can put to read the value in so that i can then call the function and they will work together... ineed to do this with a function...
    : : :
    : : :
    : : :
    : : :
    : : : Right, I've been working on it and I think I'm almost there just can't get the last bit sorted, could you just take a look at the code now as i think i'm declaring something wrong somewhere... thanks
    : : :
    : : : program Test4;
    : : :
    : : : {$APPTYPE CONSOLE}
    : : :
    : : : uses
    : : : SysUtils;
    : : : var
    : : : user, i: string;
    : : : prop : char;
    : : : Hexstr : string;
    : : : result, answer : string;
    : : :
    : : : function HexToDec(Hexstr: string): integer;
    : : : const
    : : : HexValues='0123456789ABCDEF';
    : : : var
    : : : i: integer;
    : : : begin
    : : : Result := 0;
    : : : case Length(Hexstr) of
    : : : 0: Result := 0;
    : : : 1..8: for i:=1 to Length(Hexstr) do
    : : : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : : : else for i:=1 to 8 do
    : : : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : : : end;
    : : : end;
    : : : begin
    : : : writeln ('Please enter the Hex number you wish to convert...');
    : : : readln (user);
    : : : user:= Hexstr;
    : : : HexToDec (Hexstr);
    : : :
    : : : Answer := HexToDec(Result);
    : : : writeln (answer);
    : : : readln (prop);
    : : :
    : : : end.
    : : :
    : : : :
    : : :
    : : :
    : : A function returns it's result as part of it's own call. Thus this call:
    : : [code]
    : : Answer := HexToDec(HexStr);
    : : [/code]
    : : will convert the value. The computer will process it as if it were written like this:
    : : [code]
    : : HexStr { The parameter } := HexStr { The variable }
    : : Result := 0;
    : : case Length(Hexstr) of
    : : 0: Result := 0;
    : : 1..8: for i:=1 to Length(Hexstr) do
    : : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : : else for i:=1 to 8 do
    : : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : : end;
    : : Answer := Result;
    : : [/code]
    : : Also the symbol ":=" stands for the english "verb": "is filled with". Thus this code:
    : : [code]
    : : User := HexStr;
    : : [/code]
    : : can be translated in to the english sentence:
    : : [code]
    : : User is filled with HexStr.
    : : [/code]
    : : where both user and HexStr are seen as containers holding a certain value.
    : :
    :
    : Right I now have modified my program and it seemed as though it might work this time as it is now giving back a result....
    :
    : But it's not the right result...
    :
    : Here's what I have now, you have any hints on how I can get it to return the correct decimal number to the Hex input??
    :
    : program Test4;
    :
    : {$APPTYPE CONSOLE}
    :
    : uses
    : SysUtils;
    : var
    : user, Hexstr: string;
    : prop : char;
    : result : integer;
    :
    :
    : function HexToDec(Hexstr: string): integer;
    : const
    : HexValues='0123456789ABCDEF';
    : var
    : i: integer;
    : begin
    : Result := 0;
    : case Length(Hexstr) of
    : 0: Result := 0;
    : 1..8: for i:=1 to Length(Hexstr) do
    : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : else for i:=1 to 8 do
    : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : end;
    : end;
    : begin
    : writeln ('Please enter the Hex number you wish to convert...');
    : readln (user);
    :
    : HexToDec (Hexstr);
    : writeln (Result);
    :
    : readln (prop);
    :
    : end.
    :
    :
    : Thank-you for all your help it is really appreciated!
    :
    That is because you have 2 results: 1 local variable (which only exists inside the function) and 1 global variable (which exists everywhere). These are [b]not[/b] the same. In my previous post, I have shown you how to call a function:
    : : [code]
    : : Answer := HexToDec(HexStr);
    : : [/code]
    Remember a function [b]automatically[/b] gives the result back to the calling code.
    Also User and HexStr are two [b]different[/b] variables. User contains the user input, while the variable HexStr contains nothing.
    Here is the error-free call to the HexToDec() function:
    [code]
    Answer := HexToDec(User);
    writeln(Answer);
    [/code]
    The name of the function parameters in the definition and in the call do not have to be the same, only their order and type have to match.
  • : : : : : : :
    : : : : : : : : Hi was wondering if anyone could help...
    : : : : : : : : :
    : : : : : : : : : I need to write a function to convert a hexadecimal string to equivalent dec no, without using readln within it.
    : : : : : : : : :
    : : : : : : : : : And I also need to write a procedure to input a dec no. via suitable const parameter and output the hex equivalent... In this one i can't use IntToHex or readln.
    : : : : : : : : :
    : : : : : : : : : Everything I try doesn't seem to work...
    : : : : : : : : :
    : : : : : : : : : I am doing this in a console application...
    : : : : : : : : :
    : : : : : : : : : I would be very grateful if anyone could help me!!!
    : : : : : : : : :
    : : : : : : : : : Cheers
    : : : : : : : : :
    : : : : : : : : : Kel x
    : : : : : : : : :
    : : : : : : : : This link contains the code to convert an hex string to an integer: http://www.codepedia.com/1/HexToInt
    : : : : : : : : You can modify it to suit your needs.
    : : : : : : :
    : : : : : : : Cheers, for that!
    : : : : : : :
    : : : : : : : Been trying to work through it and have this in my program so far, just trying to demonstrate it... could you perhaps give me an idea as to why this isn't working?
    : : : : : : : [code]
    : : : : : : : program Test4;
    : : : : : : :
    : : : : : : : {$APPTYPE CONSOLE}
    : : : : : : :
    : : : : : : : uses
    : : : : : : : SysUtils;
    : : : : : : : var
    : : : : : : : user, HexStr: string;
    : : : : : : : prop : char;
    : : : : : : : const
    : : : : : : : HexValues='0123456789ABCDEF';
    : : : : : : :
    : : : : : : : function HexToDec(Hexstr: string): integer;
    : : : : : : : var
    : : : : : : : i: integer;
    : : : : : : : begin
    : : : : : : : Result := 0;
    : : : : : : : case Length(Hexstr) of
    : : : : : : : 0: Result := 0;
    : : : : : : : 1..8: for i:=1 to Length(Hexstr) do
    : : : : : : : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : : : : : : : else for i:=1 to 8 do
    : : : : : : : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : : : : : : : end;
    : : : : : : : end;
    : : : : : : : begin
    : : : : : : : writeln ('Please enter the Hex number you wish to convert...');
    : : : : : : : readln (user);
    : : : : : : : user := (Hexstr); { This line overwrites the user input with a non-existing value }
    : : : : : : : HexToDec; { This line does converts the value, but does not show the results to the user }
    : : : : : : :
    : : : : : : : readln (prop);
    : : : : : : :
    : : : : : : : end.
    : : : : : : : [/code]
    : : : : : : : Cheers
    : : : : : : : Kel
    : : : : : : : :
    : : : : : : :
    : : : : : : :
    : : : : : : I've included some comments in the code, where there are errors.
    : : : : : :
    : : : : : How do I relate the user input to the function so that when i call it they work together?
    : : : : :
    : : : : That's what the function parameter is for. But you could also remove the function call, and directly use the code inside the function.
    : : : :
    : : : so the function parameter is i?? I still can't work out how I can transfer the user input to this...
    : : : I'm sorry to be a pain, I just really don't get what I can put to read the value in so that i can then call the function and they will work together... ineed to do this with a function...
    : :
    : :
    : :
    : :
    : : Right, I've been working on it and I think I'm almost there just can't get the last bit sorted, could you just take a look at the code now as i think i'm declaring something wrong somewhere... thanks
    : :
    : : program Test4;
    : :
    : : {$APPTYPE CONSOLE}
    : :
    : : uses
    : : SysUtils;
    : : var
    : : user, i: string;
    : : prop : char;
    : : Hexstr : string;
    : : result, answer : string;
    : :
    : : function HexToDec(Hexstr: string): integer;
    : : const
    : : HexValues='0123456789ABCDEF';
    : : var
    : : i: integer;
    : : begin
    : : Result := 0;
    : : case Length(Hexstr) of
    : : 0: Result := 0;
    : : 1..8: for i:=1 to Length(Hexstr) do
    : : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : : else for i:=1 to 8 do
    : : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : : end;
    : : end;
    : : begin
    : : writeln ('Please enter the Hex number you wish to convert...');
    : : readln (user);
    : : user:= Hexstr;
    : : HexToDec (Hexstr);
    : :
    : : Answer := HexToDec(Result);
    : : writeln (answer);
    : : readln (prop);
    : :
    : : end.
    : :
    : : :
    : :
    : :
    : A function returns it's result as part of it's own call. Thus this call:
    : [code]
    : Answer := HexToDec(HexStr);
    : [/code]
    : will convert the value. The computer will process it as if it were written like this:
    : [code]
    : HexStr { The parameter } := HexStr { The variable }
    : Result := 0;
    : case Length(Hexstr) of
    : 0: Result := 0;
    : 1..8: for i:=1 to Length(Hexstr) do
    : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : else for i:=1 to 8 do
    : Result := 16*Result + Pos(Upcase(Hexstr[i]), HexValues)-1;
    : end;
    : Answer := Result;
    : [/code]
    : Also the symbol ":=" stands for the english "verb": "is filled with". Thus this code:
    : [code]
    : User := HexStr;
    : [/code]
    : can be translated in to the english sentence:
    : [code]
    : User is filled with HexStr.
    : [/code]
    : where both user and HexStr are seen as containers holding a certain value.
    :
    Thanks to all your explanations and tireless patience, my program finally works!!!! Thank-you so much!!!
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories