Wide String

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
Wolf Behrenhoff [ Di, 22 Mai 2007 16:39 ] [ ID #1718918 ]

Re: Wide String

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?
>
> 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

--
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--
Moritz Lenz [ Di, 22 Mai 2007 17:05 ] [ ID #1718919 ]

Re: Wide String

Moritz Lenz <moritz [at] faui2k3.org> 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 <at> rezic <dot> 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
Slaven Rezic [ Di, 22 Mai 2007 21:20 ] [ ID #1718925 ]

Re: Wide String

Wolf Behrenhoff <NoSpamPleaseButThisIsValid3 [at] gmx.net> 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 <at> rezic <dot> de

Tk-AppMaster: a perl/Tk module launcher designed for handhelds
http://tk-appmaster.sf.net
Slaven Rezic [ Di, 22 Mai 2007 21:20 ] [ ID #1718926 ]

Re: Wide String

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
Wolf Behrenhoff [ Di, 22 Mai 2007 22:18 ] [ ID #1718927 ]
Perl » de.comp.lang.perl.misc » Wide String

Vorheriges Thema: BEGIN/CHECK Block oder nicht?
Nächstes Thema: Text::ParseWords - chomp