Calc: Daten aus externer Datei einlesen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

rici35
Beiträge: 8
Registriert: Do, 25.11.2010 15:16

Calc: Daten aus externer Datei einlesen

Beitrag von rici35 »

Hi,

ich möchte den gesamten Inhalt einer Datei in ein Feld einlesen, zum Beispiel, die Datei
1.txt in a1
2.txt in a2
...

wie bekommt man so was hin??

Viele Grüße

Rici



Moderation,4: verschoben in BASIC-Unterbereich; Betreff angepasst
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Daten aus externer Datei einlesen

Beitrag von F3K Total »

Hallo,
mit einem Makro, das

1. die Datei 1.txt lädt
2. den enthaltenen Text (kleiner als 65000 Zeichen) einem String zuordnet.
3. das entsprechende Feld in Calc findet
4. dem Feld den String zuordnet

Gruß R
rici35
Beiträge: 8
Registriert: Do, 25.11.2010 15:16

Re: Daten aus externer Datei einlesen

Beitrag von rici35 »

Hi,

danke für die schnelle Antwort.

Hmm... da bin ich überfordert.

Ich habe mal die Dateien und die Tabelle angehängt.

Könnte mir da jemand helfen??

Ich schaffe das glaub ich nicht.

Vielen Dank und viele Grüße

Rici
Dateianhänge
Mein Problem.zip
Meine Problemdaten
(7.25 KiB) 140-mal heruntergeladen
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Daten aus externer Datei einlesen

Beitrag von komma4 »

Willkommen im Forum
rici35 hat geschrieben:Ich schaffe das glaub ich nicht.
Nicht gleich verzweifeln.

Hatte gerade ein paar Minuten Zeit... kleine Fingerübung zum Frühstück 8)


Code: Alles auswählen

Dim sPfad as String
Dim sPfadTrenner as String

Sub de49091
' 2011-06-27

' Vorbereitung
' ---------------------------------------
' plattform-spezifischer Pfadtrenner
sPfadTrenner = getPathSeparator()

' Hilfsbibliothek
If NOT GlobalScope.BasicLibraries.isLibraryLoaded( "Tools" ) Then
	GlobalScope.BasicLibraries.loadLibrary( "Tools" ) 
End if
' Pfad aller Dateien aus Dateinamen der ODS
sPfad = DirectoryNameoutofPath( ThisComponent.getURL , sPfadTrenner )


iSpalte = 0  'Spaltenindex A
iZeile = 1   'Index der Startzeile 2

' Name des Blatts zum Arbeiten
sBlatt = "Sheet1"
' Objekt des Tabellenblatts
oBlatt = ThisComponent.Sheets().getByName( sBlatt )

' ersten Inhalt holen
sTestinhalt = oBlatt.getCellByPosition( iSpalte, iZeile ).getString()


' ---------------------------------------
' Schleife, solange Inhalt
While NOT ( Len( sTestinhalt ) = 0 )

   ' Objekt Ziel
   oZielZelle = oBlatt.getCellByPosition( iSpalte + 1 , iZeile )

   'Funktion zum Setzen des Dateiinhaltes
   oZielZelle.setString( getTextDateiInhalt( sTestinhalt ) )
   
   ' nächste Zeile
   iZeile = iZeile + 1
   ' Inhalt der nächsten Zeile
   sTestinhalt = oBlatt.getCellByPosition( iSpalte, iZeile ).getString()

Wend

End Sub 

' ---------------------------------------
Function getTextDateiInhalt( sName as String ) as String

sInhaltsDatei = sPfad & sPfadTrenner &sName & ".txt"
If FileExists( sInhaltsDatei ) Then

' ---------------------------------------
' Textdatei lesen - aus der F1 Hilfe
iNumber = Freefile
Open sInhaltsDatei For Input As #iNumber
While not eof(#iNumber)
Line Input #iNumber, sZeile
If sZeile <>"" then
sMsg = sMsg & sZeile & chr(13)
end if
wend
Close #iNumber
' ---------------------------------------

   getTextDateiInhalt = sMsg
Else
   getTextDateiInhalt = "*** Datei nicht gefunden ***"
End If

End Function

Kommst Du damit zurecht?
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)
rici35
Beiträge: 8
Registriert: Do, 25.11.2010 15:16

Re: Calc: Daten aus externer Datei einlesen

Beitrag von rici35 »

Hi Winfried,

vielen Dank,

das ist ja der Hammer..... Dachte, die Programmierer die hocken bis tief in die Nacht am PC....

Und du antwortest um 05:55...

ich werde mal gleich sehen ob ich es hinbekomme.

Gruß

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

Re: Calc: Daten aus externer Datei einlesen

Beitrag von komma4 »

rici35 hat geschrieben:Und du antwortest um 05:55...
Deine Zeit... ich lebe in Thailand :D

Hat es geklappt?
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)
rici35
Beiträge: 8
Registriert: Do, 25.11.2010 15:16

Re: Calc: Daten aus externer Datei einlesen

Beitrag von rici35 »

Hi Winfried,

sorry,

ich schaffe das nicht...

Ich habe zu wenig Ahnung von solchen Makros.

Ich programmiere zwar auch ab und zu, aber in autoit.....

Viele Grüße

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

Re: Calc: Daten aus externer Datei einlesen

Beitrag von komma4 »

rici35 hat geschrieben:Ich habe zu wenig Ahnung von solchen Makros.
Wo "hängt" es?
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)
rici35
Beiträge: 8
Registriert: Do, 25.11.2010 15:16

Re: Calc: Daten aus externer Datei einlesen

Beitrag von rici35 »

Hallo Winfried,

hab mich doof angestellt.

Nun tut es.

Werd noch mit scharfen Daten versuchen.

Aber mir ist aufgefallen, dass dieses Macro nun in OO Calc eingebunden ist.

Wenn ich mit der Datei auf einen anderen Rechner gehe, da funktioniert es nicht mehr.

Wie kann man das in das Document einbinden??

Viele Grüße

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

Re: Calc: Daten aus externer Datei einlesen

Beitrag von komma4 »

rici35 hat geschrieben:Wie kann man das in das Document einbinden??
Extras>Makros>Makros verwalten>OpenOffice.org Basic>Verwalten und dann das Makromodul mit gedrückter STRG Taste in das Dokument ziehen&fallen lassen
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)
Antworten