Hallo,
ich benutze memoWrit() bzw. Fwrite() um z.B. eine Serienbriefsteuerdatei zu erzeugen. Die beiden Funktionen schreiben dummerweise jedesmal ein CHR(26) als Dateiende dazu. Dies führt dazu, daß Word bei Serienbriefen das anmeckert.
Kennt jemand eine Möglichkeit, das Schreiben von CHR(26) zu verhindern oder es wieder automatisch zu entfernen?
Bi für jeden Tipp dankbar.
Gruß
Wolfgang
CHR(26) am Dateiende entfernen???
Moderator: Moderatoren
- Wolfgang_B
- Rekursionen-Architekt
- Beiträge: 484
- Registriert: Do, 14. Jun 2007 18:22
- Wohnort: 94065 Waldkirchen
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 5 Mal
- Manfred
- Foren-Administrator
- Beiträge: 21186
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- brandelh
- Foren-Moderator
- Beiträge: 15695
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Hi,
also FWrite() setzt kein CHR(26) hinter den zu schreibenden String.
Wenn allerdings ein CHR(26) im String ist (z.b. von MemoWrit()), wird es auch nicht gelöscht.
Hier habe ich Austauschfunktionen hinterlegt:
http://www.xbaseforum.de/viewtopic.php?t=1811
Nun kann man vor dem Speichern den String ja noch überprüfen:
also FWrite() setzt kein CHR(26) hinter den zu schreibenden String.
Wenn allerdings ein CHR(26) im String ist (z.b. von MemoWrit()), wird es auch nicht gelöscht.
Hier habe ich Austauschfunktionen hinterlegt:
http://www.xbaseforum.de/viewtopic.php?t=1811
Nun kann man vor dem Speichern den String ja noch überprüfen:
Code: Alles auswählen
nCH26 := at(chr(26),cTxt)
if nCH26 > 0
cTxt := left(cTxt,nCH26-1)
endif
Str2Disk(cFile,cTxt)
Gruß
Hubert
Hubert
- Wolfgang_B
- Rekursionen-Architekt
- Beiträge: 484
- Registriert: Do, 14. Jun 2007 18:22
- Wohnort: 94065 Waldkirchen
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 5 Mal
Hallo Hubert, hallo Manfred,
Manfred Du hattet recht. CHR(26) war schon in dem String enthalten, den ich mit FWRITE() weggeschrieben habe. Hatte vorher schon MemoWrit verwendet. Habe jetzt komplett auf Fwrite umgestellt. Das PRoblem ist damit gelöst. Die kleine Checkroutine ist prima. Habe bei der Gelegenheit wieder ein Paar Befehle (AT, LEFT) kennengelernt, wo ich sonst riesen Klimmzüge gemacht habe.
Vielen Dank und Gruß
Wolfgang
Manfred Du hattet recht. CHR(26) war schon in dem String enthalten, den ich mit FWRITE() weggeschrieben habe. Hatte vorher schon MemoWrit verwendet. Habe jetzt komplett auf Fwrite umgestellt. Das PRoblem ist damit gelöst. Die kleine Checkroutine ist prima. Habe bei der Gelegenheit wieder ein Paar Befehle (AT, LEFT) kennengelernt, wo ich sonst riesen Klimmzüge gemacht habe.
Vielen Dank und Gruß
Wolfgang