MS-Tech
29th March 2017, 14:37
Hallo Zusammen,
ich verwende die Funktion TEXT.TO.BUF, um einen Text in den Buffer lesen zu können. Dies wiederrum verwende ich in HiDOX, um Texte nebeneinander zu positionieren. Jetzt habe ich nur das Problem, dass ich Zeilenumbrüche einfügen muss, wenn eine Zeile länger als 40 Zeichen ist.
Wie kann ich das bewerkstelligen? Kann ich irgendwie den Buffer nachträglich durchlaufen und die Zeilen überprüfen, umbrechen etc?
Grüße
MS-Tech
andreas.toepper
31st March 2017, 10:34
Ich hab das zwar noch nie gemacht, aber im Prinzip speichert Text.to.buf(..) den Text aus der Datenbank in einem String-Array. Nunja, ein String-Array ist ein String-Array und nur in Sonderfallen ein String-Array. ;-)
Also müsste man den doch ganz normal nutzen, einzelne Elemente bearbeiten, verschieben und neu sortieren können. Ich hab zumindest schon Texte erzeugt, indem ich die Textzeilen in eine Textdatei geschrieben habe. Dann wurde per text.write() diese Datei als Text in LN gespeichert.
Nun könnte man ja den Array-Inhalt nehmen, den entsprechend formatiert in die Textdatei schreiben und dass dann speichern.
Hier ein Beispiel, das ich damals verwendet habe:
function void set.txta()
|Hier wird der Text aufgebaut:
|Create the text:
{
long tf |Text-File
domain tcmcs.str132m text.file
domain tcmcs.str132m text.line
long err, i
|Text in temp. Datei speichern:
|Save text in temp. file:
text.file = creat.tmp.file$( bse.tmp.dir$() )
|Open file for writing:
tf = seq.open(text.file, "w")
if not(isspace(text.a)) then
err = seq.puts("Bemerkung:", tf)
err = seq.puts(shiftl$(text.a), tf)
endif
if not(isspace(text.b)) then
if not(isspace(text.a)) then
err = seq.puts(" ", tf)
endif
err = seq.puts("AT-Bemerkung:", tf)
err = seq.puts(shiftl$(text.b), tf)
endif
if not(isspace(text.c)) then
err = seq.puts(" ", tf)
err = seq.puts("Anlagentyp::", tf)
err = seq.puts(shiftl$(text.c), tf)
endif
if not(isspace(text.d)) then
err = seq.puts(" ", tf)
err = seq.puts(shiftl$(text.d), tf)
endif
if not(isspace(text.e)) then
err = seq.puts(" ", tf)
err = seq.puts(shiftl$(text.e), tf)
endif
|File schließen:
|Close file:
err = seq.close(tf)
|File in Text speichern:
|Store temp file in LN text:
if do.update = tcyesno.yes then
err = text.write("tscfg200.txta", language$, "Wartungsstückliste", tscfg210.item, tscfg210.sern, "", "text", "text", text.file)
endif
|Temp. datei auf server löschen:
|Remove temp. file from server directory:
file.rm(text.file)
}
MS-Tech
21st April 2017, 17:07
Hi,
ich habs natürlich umgestellt, aber ich habe die richtigen Denkanstöße bekommen.
Funktionert also.
Grüße
MS-Tech