Visual Basic - h usw. "umwandeln
Lavender
- software
0 _roro0 Lavender0 _roro0 Frank (no reg)0 Lavender
Hallo zusammen,
ich habe folgende Frage:
wenn ich in einer Textbox diese html konformen zeichen habe (oder wie auch immer man sie nennt... Hexadezimal?)
html
und möchte daraus aber "wirklichen" Text machen, wie wandel ich die Zeichen um? (also html = "html")
Danke im Voraus.
Gruß
Lavender
hi,
und möchte daraus aber "wirklichen" Text machen, wie wandel ich die Zeichen um? (also html = "html")
das ist hex-Code den jeder Browser versteht und Dir das in lesbaren Text umwandeln kann.
Ergo: Die von Dir gesuchte Software heißt Firefox, Opera, IE ...
--roro
Moin,
danke erstmal für deine Antwort, aber das ist es nicht, was ich brauche - ich muss besagten schnippsel eben im Programm schon umwandeln - von mir aus auch über eine temporäre html datei, aber diese muss eben wieder eingelesen werden. Wenn ich sie jedoch einlese, bekomme ich nur wieder diesen netten Hex(danke) Code.
Gruß
Lavender
moin,
falls Du PERL installiert hast, gehts mit einem Script, hier die Basics:
use strict;
my $str = 'h';
$str =~ /&#x(.*);/;
my $hexzahl = $1; # steckt in der ersten Klammer
my $ord = hex $hexzahl;
my $ascii = chr $ord;
print "$ascii\n";
--roro
Vielen Dank für deine Antwort, aber Perl ist leider nicht verfügbar und wäre auch etwas ungeschickt, wenn ich an die 20 solcher Zeichen wandeln müsste...
Aber vielleicht weißt du ja, was ich mit "/" machen kann...
also erstmal "&#x" und ";" weg, dann bleibt immernoch 2F und da hab ich schon Dec, Hex, CDec usw. versucht, aber er meckert immer an dem F... und da wären auch noch C, D usw.
Viele Gruß
Lavender
Shalom!
also erstmal "&#x" und ";" weg, dann bleibt immernoch 2F [...]
Soweit schon gut. Dann setzt Du "&H" davor, damit er kapiert, daß es hexadezimal ist, und dann kannst Du's mit CInt in Integer umwandeln.
Es gibt aber auch schon eine mitgelieferte Funktion, die diese Ersetzung vornimmt (zumindest in VB 2005, ältere Versionen weiß ich nicht): System.Web.HttpUtility.HtmlDecode(DeinString)
Viele Grüße vom Længlich
Hey,
1991 hat angerufen, sie möchten gern ihre Perl4-Methodologie zurück.
use HTML::Entities qw(decode_entities);
print decode_entities 'html';
Ausgabe:
html
Moin,
1991 hat angerufen, sie möchten gern ihre Perl4-Methodologie zurück.
use HTML::Entities qw(decode_entities);
print decode_entities 'html';
Sowas Faules aber auch ;-)
Aber danke für den Tipp!
\--roro
Hi,
auch VB kennt Regular Expressions. (Muss man evt eine Projektreferenz dafür erzeugen, lange nicht mehr gemacht). Mit Regex kannst du den Zahlwert hinter &# und vor ; gut extrahieren und dann mit einer oder mehreren VB-integrierten Funktionen in ein Chr(..) verwandeln. Also du suchst den Text einfach nach dem Muster &#[0-9a-f]+; durch und ersetzt jedes Match mit dem konvertierten Chr(). Was besseres fällt mir auf die schnelle grad nicht ein.
Ciao, Frank
Vielen Dank für deine Antwort.
Soweit so gut, aber was mache ich z.B. mit / ? - ok, ich extrahiere soweit die x2F oder sogar nur 2F, aber beide male meckert er beim Chr() ...
Irgendwie müsste ich also auch noch das F umwandeln - aber zu was? oder noch besser wie?
Viele Grüße
Lavender
Moin,
Soweit so gut, aber was mache ich z.B. mit / ? - ok, ich extrahiere soweit die x2F oder sogar nur 2F
hier kannst Du dann die Funktion einsetzen:
Function Hex2Dez(ByVal strWert As String) As Long
If UCase(Left(strWert, 2)) = "0X" Then
Hex2Dez = Val("&H" & Mid(strWert, 3))
ElseIf UCase(Left(strWert, 2)) <> "&H" Then
Hex2Dez = Val("&H" & strWert)
Else
Hex2Dez = Val(strWert)
End If
End Function
GGf. noch etwas anpassen und das Ergebnis mit Chr(…) weiterverarbeiten. Oder das Chr gleich in die Funktion rein, …
Viele Grüße
Jörg