use XBase

Hallo,

ich lasse auf diese aus einer DBF-Datei eine CSV-Datei erstellen:
.................
my $table = new XBase "Kunden1.dbf" or die ("Nix isch");
open(DAT,">Kunden.csv");
for (0 .. $table->last_record) {
my ($deleted, $id, $kname, $tag, $kstr, $kort)
= $table->get_record($_, "K_NUMMER", "K_NAME", "T_NUMMER",
"K_STRASSE", "K_ORT");
$kname = Encode::decode("ibm850", $kname);
$kstr = Encode::decode("ibm850", $kstr);
$kort = Encode::decode("ibm850", $kort);
print DAT
"\"$id\";\t\"$kname\";\t\"$tag\";\t\"$kstr\";\t\"$kort\"\n" unless
$deleted;
}
close DAT;
...................
Mich würde sehr interessieren, ob dabei die Datei Kunden.dbf irgendwie in
Gefahr ist, gelöscht oder sonstwie verändert zu werden.
Ich kann's mir zwar nicht denken, aber man weiß ja nie, ob man vielleicht
was nicht weiß :-)

Gruß, Hago
Hago [ Do, 24 April 2008 17:12 ] [ ID #1949615 ]

Re: use XBase

* Hago Ziegler wrote in de.comp.lang.perl.misc:
>ich lasse auf diese aus einer DBF-Datei eine CSV-Datei erstellen:
>................
> my $table = new XBase "Kunden1.dbf" or die ("Nix isch");

>Mich würde sehr interessieren, ob dabei die Datei Kunden.dbf irgendwie in
>Gefahr ist, gelöscht oder sonstwie verändert zu werden.

Ein kurzer Blick in XBase::Base verrät, wenn man nicht nen scheinbar un-
dokumentierten Parameter an den Konstruktor übergibt, wird die Datei zu-
mindest zum lesen und schreiben geöffnet (cf. "readonly" in dem Modul).
Im Zweifel müsste man den Autoren fragen oder den Code untersuchen, hier
wird dir das wohl keiner genau sagen können. Im Zweifel lieber sicher-
gehen und eine Kopie machen oder mit einem guten Schreibschutz versehen.
--
Björn Höhrmann · mailto:bjoern [at] hoehrmann.de · http://bjoern.hoehrmann.de
Weinh. Str. 22 · Telefon: +49(0)621/4309674 · http://www.bjoernsworld.de
68309 Mannheim · PGP Pub. KeyID: 0xA4357E78 · http://www.websitedev.de/
Bjoern Hoehrmann [ Do, 24 April 2008 21:22 ] [ ID #1949616 ]
Perl » de.comp.lang.perl.misc » use XBase

Vorheriges Thema: Wunsch für Perl
Nächstes Thema: eval und Filter::exec