Forum: Compiler & IDEs Konvertierung String oder Dezimalzahl nach Hex in EZGPIB


von Echo (Gast)


Lesenswert?

Ahoi,

ich versuche gerade einen Codeschnipsel zu finden der mir in EZGPIB 
einen Zahlenstring (Dezimal, Zahlenwert schwankt zwischen 0 und 2,6 
Milliarden) in einen String aus Hexadezimalzahlen umwandelt. Die 
Problematik besteht darin dass ich zwar viele Beispiele basierend auf 
der PASCAL-Programmiersprache finde, diese aber allesamt nicht direkt in 
EZGPIB funktionieren. Vielleicht benutzt ja hier jemand EZGPIB und kann 
mir helfen ein bestehenden Codeschnipsel anzupassen, damit dieser 
funktioniert.

z.B. dieser Schnipsel gefunden auf 
http://computer-programming-forum.com/29-pascal/9449404a18217f5e.htm

EZGPIB: http://www.ulrich-bangert.de/html/downloads.html
1
program hex_conv;
2
3
var
4
  gwar:string;
5
6
function Hex(v: Longint; w: Integer): String;
7
var
8
  s               : String;
9
  i               : Integer;
10
const
11
  hexc            : array [0 .. 15] of Char= '0123456789abcdef';
12
begin
13
  s[0] := Chr(w);
14
  for i := w downto 1 do begin
15
    s[i] := hexc[v and $F];
16
    v := v shr 4
17
  end;
18
  Hex := s;
19
end;
20
21
begin
22
  gwar:=hex(77,4);
23
  writeln(gwar);
24
  gwar:=hex(4096,4);
25
  writeln(gwar);
26
end.

Der EZGPIB-Compiler zeigt dann an dass er die Konstante hexc nicht 
akzeptiert. Wenn ich hexc nun statt als const als var verwende und nach 
begin mit den Arraywerten vollschreibe, meckert der Compiler an der 
Stelle   Hex := s; "invalid number of parameters". Ich sehe dort das 
Problem aber nicht, da ich mich nicht besonders auskenne in 
Programmiersprachen. Hier die von mir eben beschreiben geänderte 
Version:
1
program hex_conv;
2
3
var
4
  gwar:string;
5
6
function Hex(v: Longint; w: Integer): String;
7
var
8
  s               : String;
9
  i               : Integer;
10
  hexc            : array [0 .. 15] of Char;
11
begin
12
hexc[0] := '0';
13
hexc[1] := '1';
14
hexc[2] := '2';
15
hexc[3] := '3';
16
hexc[4] := '4';
17
hexc[5] := '5';
18
hexc[6] := '6';
19
hexc[7] := '7';
20
hexc[8] := '8';
21
hexc[9] := '9';
22
hexc[10] := 'A';
23
hexc[11] := 'B';
24
hexc[12] := 'C';
25
hexc[13] := 'D';
26
hexc[14] := 'E';
27
hexc[15] := 'F';
28
  s[0] := Chr(w);
29
  for i := w downto 1 do begin
30
    s[i] := hexc[v and $F];
31
    v := v shr 4
32
  end;
33
  Hex := s;
34
end;
35
36
begin
37
  gwar:=hex(77,4);
38
  writeln(gwar);
39
  gwar:=hex(4096,4);
40
  writeln(gwar);
41
end.

Danke

von Echo (Gast)


Lesenswert?


Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.