dBase Datei öffnen

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

Hago
****
Beiträge: 135
Registriert: Di, 07.12.2004 16:44

dBase Datei öffnen

Beitrag von Hago »

Hallo,

ich lasse mit einem Perl-Script eine dBase Datei von OOCalc öffnen.
Das klappt, nur nicht ganz so, wie ich es will.

Sofort nach dem Start von OO poppt das kleine Fenster hoch ("DBaseimport"), in dem ich nach dem zu verwendenden Zeichensatz gefragt werde.
Das möchte ich gerne vermeiden.
Gibt es irgendeine Möglichkeit, diese Entscheidung beim Aufruf als Parameter mit anzugeben oder einen Standard im Programm festzulegen?

Ich wäre für Hilfe sehr dankbar.

Gruß, Hago
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: dBase Datei öffnen

Beitrag von komma4 »

siehe viewtopic.php?f=18&t=16481

Das bekommst Du auch in Perl verpackt?!
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Hago
****
Beiträge: 135
Registriert: Di, 07.12.2004 16:44

Re: dBase Datei öffnen

Beitrag von Hago »

Hallo,

ich hab's inzwischen raus bekommen.
Christian Winter aus der Perl-Newsgroup hat's gewusst:

Code: Alles auswählen

use strict;

my $dir = ("-Pfad zu OO-Calc-");
my $file = "-Pfad zur DBF-Datei-";
my $enc  = "IBMPC_850";  'das ist der wesentliche Zeichensatz, den dBase verwendet
 
my @cmd = (
    $dir."scalc.exe",
    qq[macro:///Standard.Module1.openDBFwithEnc("$file","$enc")]
);
 
system( @cmd );
Im "Standard.Module1" braucht man dann dieses Makro mit der Funktion(auch von Christian Winter):

Code: Alles auswählen

Function MakePropertyValue( Optional cName As String, Optional uValue ) As com.sun.star.beans.PropertyValue
	Dim oPropertyValue As New com.sun.star.beans.PropertyValue
	If Not IsMissing( cName ) Then
		oPropertyValue.Name = cName
	EndIf
	If Not IsMissing( uValue ) Then
		oPropertyValue.Value = uValue
	EndIf
	MakePropertyValue() = oPropertyValue
End Function


sub openDBFwithEnc( iFile As String, inputCharset As String )
'    dim document as object
    dim oDoc as object
 
    inURL = ConvertToURL( "-Pfad zur DBF-Datei-" )
 
    oDesk = createUNOService("com.sun.star.frame.Desktop")
 
    oDoc = oDesk.loadComponentFromURL( inURL, "_blank", 0, Array(_
    MakePropertyValue("FilterOptions", inputCharset),_
    MakePropertyValue("FilterName", "dBase"),_
    MakePropertyValue("Hidden", False) ) )

end sub
Vielleich interessiert es ja jemanden.

Gruß, Hago
JuSe
Beiträge: 2
Registriert: Do, 28.06.2012 18:41

Re: dBase Datei öffnen

Beitrag von JuSe »

Hallo,
ich brings einfach nicht hinne ! :(
Eine vorhandene dbf Datei aus einem Makro heraus öffnen schlägt genau so wie beschrieben fehl.

Könnten Sie bitte mal ihren vollständigen problemlösenden Modulcode zum Nachvollziehen ins Forum stellen. Ich verzweifle nämlich langsam aber sicher. Die Importmethoden aus Fachbüchern (Thomas Krumbein) funktionieren bei mir einfach nicht . Ihre Lösung würde ich gerne ausprobieren, mir fehlt allerdings die Einbindung der Funktion. Auch kann ich mit dem Begriff "Perl-Newsgroup" nichts anfangen.

Bitte helfen sie mir weiter.

Vielen Dank

Jürgen
Antworten