Thread Problem beim Wandeln für Hex-Zugriff: Http-Request über Server auf Oracle-DB (4 answers)
Opened by holgi66 at 2005-02-23 08:38

holgi66
 2005-02-23 08:38
#51948 #51948
User since
2005-02-23
1 Artikel
BenutzerIn
[default_avatar]
Ich habe folgendes Problem :
Ich muss über http-request eine Oracle-DB über einen Server ansprechen.
dabei muss ich die Werte hexal übergeben, und zwar so, dass z.b. der Buchstabe a mit 4
Byte übergeben wird : "\x61\x00\x00\x00", oder z.b. die Zahl 1 : "\x31\x00\x00\x00".
Die Eingaben dazu werden dynamisch erzeugt.
Wie bekomme ich die am sinnvollsten gewandelt ?

Hab eine Funktion geschrieben, die das über eine Tabelle machen soll, aber die bringt das beim print anders raus, als wenn ich das direkt zuweise, wandelt das irgendwie nicht richtig :

Coding :
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#!/usr/bin/perl -w
use strict;
print "Content-Type: text/html\n\n";

my $userid = "$ENV{'REMOTE_USER'}";
print "id: ".$userid."
";

my $hexbid=&hex_formatieren($userid);
$hexbid="\x0E\x00".$hexbid;
print "hexbid: $hexbid
";
my $bid="\x0E\x00\x66\x00\x30\x00\x30\x00\x32\x00\x36\x00\x37\x00\x39\x00";
print "bid: $bid
";

sub hex_formatieren {
my ($mess) = @_;
#print "mess : $mess
";
my $erg;
my $hextab = "/users/elbaeak/bin/cgibin/hextab";
my $i = 0;
print "len : ".length($mess)."
";
while ($i < length($mess) )
{
#print "i : $i
";
open (HEXTAB,"<$hextab");
while ()
{
if (substr($_,0,1) eq substr($mess,$i,1))
{

$erg = $erg.substr($_,1,8);
#print "sign:".substr($mess,$i,1)."
";
#print "erg :".$erg."
";
}
}
close(HEXTAB);
$i++;
}

print "erg: ".$erg."
";
return $erg;
} # ende hex_formatieren

Ausgabe :

id: f002679
len : 7
erg: \x66\x00\x30\x00\x30\x00\x32\x00\x36\x00\x37\x00\x39\x00
hexbid: \x66\x00\x30\x00\x30\x00\x32\x00\x36\x00\x37\x00\x39\x00 # Ausgabe aus Funktion
bid: f002679 # Ausgabe aus direkter Zuweisung, so sollte es auch sein

Tabelle, die in hextab eingelesen wird :

0\x30\x00
1\x31\x00
2\x32\x00
3\x33\x00
4\x34\x00
usw.

Bin in Perl noch nicht so tief drin, denke mal, dass man das eleganter lösen kann,
oder ?

Gruß
Holger\n\n

<!--EDIT|renee|1109145482-->

View full thread Problem beim Wandeln für Hex-Zugriff: Http-Request über Server auf Oracle-DB