Wide String

Wide String

am 22.05.2007 16:39:02 von Wolf Behrenhoff

Hallo,

kann mir mal jemand kurz sagen, wie ich Widestrings aus einer Datei einlese?

Also die Datei ist so, dass jedes 2. Byte 00 ist. Wie bekomme ich das in
Perl eingelesen? Welches IO-Layer brauche ich da? Oder muss ich
irgendwie encode/decode verwenden?

Wolf

Re: Wide String

am 22.05.2007 17:05:13 von Moritz Lenz

This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--------------enigABB190B206FD75FC118380D8
Content-Type: text/plain; charset=ISO-8859-15
Content-Transfer-Encoding: quoted-printable

Hallo,

Wolf Behrenhoff wrote:
> kann mir mal jemand kurz sagen, wie ich Widestrings aus einer Datei ein=
lese?
>=20
> Also die Datei ist so, dass jedes 2. Byte 00 ist. Wie bekomme ich das i=
n
> Perl eingelesen? Welches IO-Layer brauche ich da? Oder muss ich
> irgendwie encode/decode verwenden?

pack() sollte dir helfen, eventuelle mit Hilfe von
http://perldoc.perl.org/perlpacktut.html

HTH,
Moritz

--=20
Moritz Lenz
http://perl-6.de/ http://moritz.faui2k3.org/


--------------enigABB190B206FD75FC118380D8
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFGUwatAAkekJBI0yIRAhivAKCV1Z1dA/o3U2A2RUFpSfoFnAaCbQCf fm2p
FfDhwBs8qT3JooosJ33lsyA=
=X6jk
-----END PGP SIGNATURE-----

--------------enigABB190B206FD75FC118380D8--

Re: Wide String

am 22.05.2007 21:20:14 von Slaven Rezic

Wolf Behrenhoff writes:

> Hallo,
>
> kann mir mal jemand kurz sagen, wie ich Widestrings aus einer Datei einlese?
>
> Also die Datei ist so, dass jedes 2. Byte 00 ist. Wie bekomme ich das in
> Perl eingelesen? Welches IO-Layer brauche ich da? Oder muss ich
> irgendwie encode/decode verwenden?

Ja (encoding-Layer) und Ja (Encode.pm). Es hört sich an, als ob die
Datei in utf-16 vorliegt.

--
Slaven Rezic - slaven rezic de

Tk-AppMaster: a perl/Tk module launcher designed for handhelds
http://tk-appmaster.sf.net

Re: Wide String

am 22.05.2007 21:20:51 von Slaven Rezic

Moritz Lenz writes:

> Hallo,
>
> Wolf Behrenhoff wrote:
> > kann mir mal jemand kurz sagen, wie ich Widestrings aus einer Datei einlese?
> >
> > Also die Datei ist so, dass jedes 2. Byte 00 ist. Wie bekomme ich das in
> > Perl eingelesen? Welches IO-Layer brauche ich da? Oder muss ich
> > irgendwie encode/decode verwenden?
>
> pack() sollte dir helfen, eventuelle mit Hilfe von
> http://perldoc.perl.org/perlpacktut.html
>

Möglichst nicht. Es hört sich tatsächlich so an, als ob die Datei in
einem gültigen Encoding (utf-16?) vorliegen würde.

--
Slaven Rezic - slaven rezic de
Tired of using file selectors? Real programmers use the TAB key for
completion and not for jumping around. Try
http://search.cpan.org/search?mode=module&query=Tk::PathEntr y

Re: Wide String

am 22.05.2007 22:18:06 von Wolf Behrenhoff

Wolf Behrenhoff schrieb:
> Hallo,
>
> kann mir mal jemand kurz sagen, wie ich Widestrings aus einer Datei einlese?
>
> Also die Datei ist so, dass jedes 2. Byte 00 ist. Wie bekomme ich das in
> Perl eingelesen? Welches IO-Layer brauche ich da? Oder muss ich
> irgendwie encode/decode verwenden?

Ich habe eigentlich nur
decode("UTF-16", <$F>)
gesucht, hatte aber nicht beachtet, dass ich vorher versucht hatte,
"normal" eine Zeile einzulesen und dann erst das decode machen wollte
(was dann mit einem Fehler abbrach). Ich weiß nicht, wo ich genau den
eigentlichen String kaputt gemacht hatte (kein binmode etc. und
versucht, die Datei mit falschem $/ zeilenweise zu lesen), jedenfalls
funktioniert es nun perfekt. Es war vermutlich zu warm :-)

Wolf