[gelöst] kleines Programm zum Exportieren in eine txt-Datei
Moderator: Moderatoren
-
- Beiträge: 7
- Registriert: Do, 11.08.2011 14:36
[gelöst] kleines Programm zum Exportieren in eine txt-Datei
Hallo!
Ich soll ein kleines Programm schreiben, das dem Benutzer ein Beutzerinterface liefert, in das er verschiedene Zahlen und
Beschreibungen eingibt. Diese sollen dann in eine *.txt-Datei eingefügt werden, um dort als C-Code mit einem anderen
Programm ausgelesen werden zu können.
Beispiel:
Benutzer gibt in ein OOo-Basic-Dialog (den ich schon erstellte) eine Überschrift, eine Zahl und eine kurze Beschreibung in
3 verschiedene Textfelder.
Wenn der Benutzer auf den button "speichern" klickt, werden diese Einträge auf zwei Arten weiterverarbeitet:
- einmal werden sie in eine Liste [Überschrift|Zahlen|Beschreibungen] eines Excelblattes geschrieben und zum anderen
- wird diese Liste ausgelesen und bearbeitet, indem man noch weitere strings anhängt, und somit in die Form eines C-Quellcodes
gebracht, der in der *.txt-Datei abgespeichert wird, z.B sollte der functions-Name gleich der Überschrift sein function beispielueberschrift(){..}u.ä...
Nun hätte ich ein paar Fragen, da ich bisher nur sehr grundlegende Dinge in VBA gelernt habe:
- Wie kann ich in OOo-Basic strings, die der Benutzer in Textfelder eingibt, weiterverarbeiten - also z.B noch weitere
Zeichen daranhängen (um dem syntax von C genüge zu tun)?
- Wie/mit welchem Befehl kann ich die fertigen Strings in eine *.txt-Datei einspeichern?
- Wie/mit welchem Befehl kann man aus Zeilen einer scalc-Tabelle Daten in das Basic einlesen bzw aus Basic in die Tabelle
schreiben(Hintergrund ist der, dass ein Listenfeld mit vertikaler Bildlaufleiste benötigt wird, in der alle Überschriften
gespeichert sind, sodass man sie und deren Beschreibung und Zahlenwerte noch nachträglich ändern kann.
Ich weis, das sind viele Fragen eines Neulings. Ich hoffe, dass Ihr mir diese Fragen beantworten könnt - auf jeden Fall
schonmal Dankeschön, dass Ihr euch die Zeit genommen habt, meine Erklärung und meine Fragen durchzulesen.
MfG
Tante edit: Als ich heute vormittag ein Account erstellte, den Beitrag schrieb, wurde mir mitgeteilt, mein Account wäre aufgrund Spammings gesperrt? cO
Musste mir nun einen neuen machen - bei diesem hier funktionierte (noch) alles so, wie es sollte.
Ich soll ein kleines Programm schreiben, das dem Benutzer ein Beutzerinterface liefert, in das er verschiedene Zahlen und
Beschreibungen eingibt. Diese sollen dann in eine *.txt-Datei eingefügt werden, um dort als C-Code mit einem anderen
Programm ausgelesen werden zu können.
Beispiel:
Benutzer gibt in ein OOo-Basic-Dialog (den ich schon erstellte) eine Überschrift, eine Zahl und eine kurze Beschreibung in
3 verschiedene Textfelder.
Wenn der Benutzer auf den button "speichern" klickt, werden diese Einträge auf zwei Arten weiterverarbeitet:
- einmal werden sie in eine Liste [Überschrift|Zahlen|Beschreibungen] eines Excelblattes geschrieben und zum anderen
- wird diese Liste ausgelesen und bearbeitet, indem man noch weitere strings anhängt, und somit in die Form eines C-Quellcodes
gebracht, der in der *.txt-Datei abgespeichert wird, z.B sollte der functions-Name gleich der Überschrift sein function beispielueberschrift(){..}u.ä...
Nun hätte ich ein paar Fragen, da ich bisher nur sehr grundlegende Dinge in VBA gelernt habe:
- Wie kann ich in OOo-Basic strings, die der Benutzer in Textfelder eingibt, weiterverarbeiten - also z.B noch weitere
Zeichen daranhängen (um dem syntax von C genüge zu tun)?
- Wie/mit welchem Befehl kann ich die fertigen Strings in eine *.txt-Datei einspeichern?
- Wie/mit welchem Befehl kann man aus Zeilen einer scalc-Tabelle Daten in das Basic einlesen bzw aus Basic in die Tabelle
schreiben(Hintergrund ist der, dass ein Listenfeld mit vertikaler Bildlaufleiste benötigt wird, in der alle Überschriften
gespeichert sind, sodass man sie und deren Beschreibung und Zahlenwerte noch nachträglich ändern kann.
Ich weis, das sind viele Fragen eines Neulings. Ich hoffe, dass Ihr mir diese Fragen beantworten könnt - auf jeden Fall
schonmal Dankeschön, dass Ihr euch die Zeit genommen habt, meine Erklärung und meine Fragen durchzulesen.
MfG
Tante edit: Als ich heute vormittag ein Account erstellte, den Beitrag schrieb, wurde mir mitgeteilt, mein Account wäre aufgrund Spammings gesperrt? cO
Musste mir nun einen neuen machen - bei diesem hier funktionierte (noch) alles so, wie es sollte.
Zuletzt geändert von Lagerregal am Fr, 12.08.2011 13:14, insgesamt 1-mal geändert.
Re: kleines Programm zum Exportieren in eine txt-Datei
Hallo Lagerregal,
ich empfehle Dir folgenden Link http://www.starbasicfaq.de/. Der Herr Dannenhöfer zeigt eigentlich alles was Du suchst: Dialoge/Stringbearbeitung/Öffnen/Speichern/Schliessen von Dateien usw.
Gruß R
ich empfehle Dir folgenden Link http://www.starbasicfaq.de/. Der Herr Dannenhöfer zeigt eigentlich alles was Du suchst: Dialoge/Stringbearbeitung/Öffnen/Speichern/Schliessen von Dateien usw.
Gruß R
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
-
- Beiträge: 7
- Registriert: Do, 11.08.2011 14:36
Re: [gelöst] kleines Programm zum Exportieren in eine txt-Da
vielen Dank, der Link hilft mir weiter!
Jedoch kann ich mit der folgenden Fehlermeldung noch nicht viel anfangen, vll. kann mir da jemand weiterhelfen?
Fehlermeldung: "BASIC-Laufzeitfehler. Objektvariable nicht belegt."
Er tritt auf:
Der Fehler tritt in der Linie "ueberschrift = Dialog1.getControl("TextField1")" auf. Er tritt auch auf, wenn ich ueberschrift als variant deklariere.
Den Namen des Textfeldes habe ich aus seinem Eigenschafts-Dialog kopiert, es kann sich also nicht um einen nicht existenten Namen handeln.
Weis jemand Rat?
mit freundlichem Gruß!
Jedoch kann ich mit der folgenden Fehlermeldung noch nicht viel anfangen, vll. kann mir da jemand weiterhelfen?
Fehlermeldung: "BASIC-Laufzeitfehler. Objektvariable nicht belegt."
Er tritt auf:
Code: Alles auswählen
Sub but_speichern
'aus txt-Feld holen
dim ueberschrift As object 'bin mir nicht sicher, ob object richtig ist
ueberschrift = Dialog1.getControl("TextField1")
'in Tabelle schreiben
myDoc = thisComponent
mySheet = myDoc.sheets(0)
mycell = mysheet.getCellRangeByName("$C$5")
mycell.string = ueberschrift
End Sub
Den Namen des Textfeldes habe ich aus seinem Eigenschafts-Dialog kopiert, es kann sich also nicht um einen nicht existenten Namen handeln.
Weis jemand Rat?
mit freundlichem Gruß!
Zuletzt geändert von Lagerregal am Fr, 12.08.2011 13:14, insgesamt 1-mal geändert.
Re: kleines Programm zum Exportieren in eine txt-Datei
Hallihallo, da bin ich wieder ...
Ich empfehle die Xray http://bernard.marcelly.perso.sfr.fr/index2.html zu installieren.
Damit kannst Du nicht nur das Textfeld analysieren, und wirst feststellen, dass es viele Eigenschaften hat.
Du willst aber vermutlich nur den eingegebenen Inhalt des Textfeldes auslesen, das geht im Dialog so:
... und "ueberschrift" ist ein string, brauchst Du nicht zu deklarieren, kannst Du aber.
Gruß R
Ich empfehle die Xray http://bernard.marcelly.perso.sfr.fr/index2.html zu installieren.
Damit kannst Du nicht nur das Textfeld analysieren, und wirst feststellen, dass es viele Eigenschaften hat.
Du willst aber vermutlich nur den eingegebenen Inhalt des Textfeldes auslesen, das geht im Dialog so:
Code: Alles auswählen
oTextfield = Dialog1.getControl("TextField1")
ueberschrift=oTextfield.text
Gruß R
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
-
- Beiträge: 7
- Registriert: Do, 11.08.2011 14:36
Re: [gelöst] kleines Programm zum Exportieren in eine txt-Da
vielen Dank!
Doch dein Code sieht so simpel aus - die Fehlermeldung bleibt trotzdem und ich komm mir langsam sehr dumm vor.
Aus dem "Staroffice 8 - Programmierhandbuch für Basic" habe ich mal nach dem Befehl getcontrol geschaut, das Beispiel übernommen:
nach deiner Empfehlung das "dim" erstmal auskommentiert, als ctl "oTextfield" eingefügt und statt Dlg den Namen meines Dialoges "Dialog1" eingefügt.
Auch hier kommt der oben genannte Fehler "Objektvariable nicht belegt".
Bei dem Code, den du mir schriebst, habe ich dann nochmals nachgeschaut, ob mein Dialog und mein Textfeld tatsächlich so heißen, wie im Code beschrieben, da ich gelesen habe, dass die Fehlermeldung vor allem durch einen Bezug von getControl auf ein nicht vorhandenes Element verursacht wird.
Die Namen des Textfeldes und des Dialoges habe ich per copy-and-paste nochmals aus den Eigenschaften herauskopiert - ohne Wirkung; der Fehler muss wo anderst liegen.
Hat vll. der Code darüber etwas damit zu tun?
Den habe ich aus einem Beispiel herauskopiert, bei dem es darum ging, ein Dialog beim starten des Makros aufrufen zu können:
vielen Dank für die Hilfe!
Doch dein Code sieht so simpel aus - die Fehlermeldung bleibt trotzdem und ich komm mir langsam sehr dumm vor.
Aus dem "Staroffice 8 - Programmierhandbuch für Basic" habe ich mal nach dem Befehl getcontrol geschaut, das Beispiel übernommen:
Code: Alles auswählen
Dim Ctl As Object
Ctl = Dlg.getControl("MyButton")
Ctl.Label = "New Label"
Auch hier kommt der oben genannte Fehler "Objektvariable nicht belegt".
Bei dem Code, den du mir schriebst, habe ich dann nochmals nachgeschaut, ob mein Dialog und mein Textfeld tatsächlich so heißen, wie im Code beschrieben, da ich gelesen habe, dass die Fehlermeldung vor allem durch einen Bezug von getControl auf ein nicht vorhandenes Element verursacht wird.
Die Namen des Textfeldes und des Dialoges habe ich per copy-and-paste nochmals aus den Eigenschaften herauskopiert - ohne Wirkung; der Fehler muss wo anderst liegen.
Hat vll. der Code darüber etwas damit zu tun?
Den habe ich aus einem Beispiel herauskopiert, bei dem es darum ging, ein Dialog beim starten des Makros aufrufen zu können:
Code: Alles auswählen
Sub Main
Dim dlg, dlgBeschreibung As Object
dlgBeschreibung = DialogLibraries.Standard.Dialog1
dlg = CreateUnoDialog(dlgBeschreibung)
dlg.Execute()
End Sub
Zuletzt geändert von Lagerregal am Fr, 12.08.2011 13:14, insgesamt 1-mal geändert.
Re: kleines Programm zum Exportieren in eine txt-Datei
ja, nimm mal statt "Dialog1" dlg, so hast Du das Objekt doch erzeugt.
Gruß R
Gruß R
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
-
- Beiträge: 7
- Registriert: Do, 11.08.2011 14:36
Re: [gelöst] kleines Programm zum Exportieren in eine txt-Da
JA! endlich
ich hatte schon an mir selbst gezweifelt.
mit dem dlg hat es erst nicht funnktioniert, bis ich gesehen habe, dass es oben in der main als lokales object deklariert wurde. Als ich die Deklaration aus der main nahm, funktionierte es.
Zwar verstehe ich nicht, warum ich den Dialog, der im Dialogenditor den Namen "Dialog1" hat, dann nochmals als dlg = CreateUnoDialog(dlgBeschreibung) erstellen und "umtaufen" muss, aber es funktioniert jetzt
..."vorerst"
vielen Dank für deine ausführliche Hilfe und Geduld!
Ich werde mich warscheinlich bald schon wieder melden müssen
Aber bis dahin lese ich mich fein ein und probiere aus.

mit dem dlg hat es erst nicht funnktioniert, bis ich gesehen habe, dass es oben in der main als lokales object deklariert wurde. Als ich die Deklaration aus der main nahm, funktionierte es.
Zwar verstehe ich nicht, warum ich den Dialog, der im Dialogenditor den Namen "Dialog1" hat, dann nochmals als dlg = CreateUnoDialog(dlgBeschreibung) erstellen und "umtaufen" muss, aber es funktioniert jetzt

..."vorerst"
vielen Dank für deine ausführliche Hilfe und Geduld!
Ich werde mich warscheinlich bald schon wieder melden müssen

Aber bis dahin lese ich mich fein ein und probiere aus.
Zuletzt geändert von Lagerregal am Fr, 12.08.2011 13:14, insgesamt 1-mal geändert.
Re: kleines Programm zum Exportieren in eine txt-Datei
Hallo Lagerregal,
dann wäre es schön, wenn Du diesen Thread als [gelöst] markieren würdest, einfach auf "ÄNDERN" klicken und die Titelzeile anpassen.
Für neue Fragen einen neuen Thread aufmachen.
Gruß R
dann wäre es schön, wenn Du diesen Thread als [gelöst] markieren würdest, einfach auf "ÄNDERN" klicken und die Titelzeile anpassen.
Für neue Fragen einen neuen Thread aufmachen.
Gruß R
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO