erster Absatz als Dateiname

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

Moderator: Moderatoren

clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

erster Absatz als Dateiname

Beitrag von clag »

Hallo Kenner und Könner,

ich möchte eine Datei die einer Vorlage entstammt unter einem Namen speichern der dem ersten Absatz dieser Datei entspricht
also erstes Zeichen bis zum ersten CR
Zurzeit mach ich da mit "markieren > copy > ctrl+s > paste > enter"
und dann wird diese Datei per Makro geschlossen und es wird erneut diese Vorlage geladen

wie müsste der Basic Code dazu aussehen

ersten Absatz kopieren = Name
Datei speichern unter
"Pfad + Name einfügen"
speichern

das könnte ich dann in das vorhandene Makro einbauen und mir das manuelle speichern unter sparen :)

(genial wäre wenn man in der Vorlage noch einen unsichtbaren Text platzieren/verstecken könnte der den Pfad vorgibt
diesen Wunsch kann ich aber vielleicht selber aus der Antwort zur ersten Frage ableiten)

und schmal danke vorweg für .......
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: erster Absatz als Dateiname

Beitrag von clag »

Hallo

habe mir jetzt das hier

Code: Alles auswählen

sub SaveAsAbsatz1
	Doc = thisComponent
	Enum = Doc.Text.createEnumeration
	Enum = Doc.Text.createEnumeration
	TextElement = Enum.nextElement

	dim dummy()
	datei="H:\MeinTest\OOo\" & TextElement.string
	dateiurl=converttourl(datei)
	odoc=thisComponent
	odoc.storeasurl(dateiurl,dummy())
end sub
zusammengeklaubt
funktioniert auch schon im groben

allerdings bekommt die Datei noch keine Dateierweiterung
und wenn das letzte Zeichen der "dateiurl" ein Leerzeichen ist gibt es Mecker und wird nix gespeichert
wo muss ich da noch was ändern damit das richtig funktioniert?

für sachdienliche Hinweise und Antworten ist ein Belohnung in Höhe von 3xDanke ausgelobt :lol:
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: erster Absatz als Dateiname

Beitrag von komma4 »

clag hat geschrieben:allerdings bekommt die Datei noch keine Dateierweiterung
Dann vergib' sie halt selbst.

Du bestimmst per Code den Dateinamen... ergänze die Dateierweiterung (weil Windows es halt braucht; :D)
clag hat geschrieben:und wenn das letzte Zeichen der "dateiurl" ein Leerzeichen ist gibt es Mecker und wird nix gespeichert
Entferne eventl. vorhanden Leerzeichen mit RTRIM

clag hat geschrieben:für sachdienliche Hinweise und Antworten ist ein Belohnung in Höhe von 3xDanke ausgelobt :lol:
Geschenkt 8)
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)
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: erster Absatz als Dateiname

Beitrag von clag »

Hallo,

na denn eben nur 1xDanke :D

funktioniert bis jetzt so wie gedacht, nur ein kleines Problem gibt es noch

befinden sich in dem Text \ oder / generiert das Makro ab da Unterverzeichnisse :?
das muss ich noch irgendwie im Makro verhindern per Meldung oder Wandeln in - oder ~ oder auch nur entfernen...

kann man im Makro auf einen String so etwas wie Calc's ERSETZEN() ansetzen ?
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: erster Absatz als Dateiname

Beitrag von clag »

Hallo allseits

mein Makro beglückt mich schon wieder seit geraumer Zeit mit Fehlermeldungen
ich bekomme keine Zeile zustande die RTrim ausführt, außer DingDong für Fehler ernte ich hier wieder nix :evil:

wie muss das richtig aussehen, um zB die Variable "myText" von Leerzeichen zu befreien ?

RTRIM(str)
Returns the string str with trailing space characters removed.
mysql> SELECT RTRIM('barbar ');
-> 'barbar'
This function is multi-byte safe.

REPLACE(str,from_str,to_str)
Returns the string str with all occurrences of the string from_str replaced by the string to_str. REPLACE() performs a case-sensitive match when searching for from_str.
mysql> SELECT REPLACE('www.mysql.com', 'w', 'Ww');
-> 'WwWwWw.mysql.com'
This function is multi-byte safe.


mit diesen beiden Beschreibungen komm ich nicht klar
da wäre ich für ein funktionierendes Beispiel wie immer sehr dankbar!

EDIT !

die letzte Frage hat sich erledigt, bin auf der Seite von Michael Dannenhöfer fündig geworden :D
Text02 = RTrim(Text01,)
es kann alles so schön einfach sein (wenn man erst einmal weiß wie es geht)
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Antworten