Autor | Thema: Memofelder | | Datum:17.07.02 20:17 
(alistair@murray.ch) | |
Liebe Profaner
Ich habe in einer Datenbank ein Memofeld: Ich möchte per Hand oder per Zwischenablage Texte in ein mehrzeiliges Editierfeld schreiben, und von dort aus (via profaninterne Listbox) in das Memofeld schreiben.
Es scheint, als würden dabei Zeichen verloren gehen. Wer kann mir helfen?
Vielen Dank
Alistair
|
| | Datum:18.07.02 06:51 
(info@ebs-haase.de) | |
Hi!
Ein Stückchen Code der Quelle wäre nicht schlecht. Dann kann man mehr dazu sagen.
:-) Bernd
|
| | Datum: 18.07.02 15:37 
(alistair@murray.ch) | |
Hallo
Ich habe in der Zwischenzeit an meinem Problem gearbeitet.
Ich lasse jetzt die Daten folgendermassen einlesen:
dbgetmemo("ELTEXT") '"ELTEXT" = Memofeld
let memprev$=movelisttostr$(" ")
String medit#,0 = memprev$ 'medit#=Bereichsvariable
@sendmessage(eltextedit%,$000C,0,medit#)
Damit sind die Daten im mehrzeiligen Editfeld drin.
Beim Zurückschreiben scheint es mir, dass die profaninterne Listbox nur Zeilen bis 255 oder 256 Zeichen nimmt, der Rest verschwindet. Darum lese ich die Daten in einen Bereich aus, und schreibe sie in Happen von weniger als 256 Byte in die profaninterne Listbox, und von dort aus per dbputmemo ins Memofeld:
let memlen&=@sendmessage(eltextedit%,$000D,32768,medit#)
byte medit#,memlen& = 0 'ist diesese Nullbyte nötig?
let memprev$=@String$(medit#,0)
clearlist
let loopf%=0
while loopf% < int(memlen&/250) 'Happen von je 250 Byte
let teilstring$=@Char$(medit#,(loopf%*250),250)
addstring teilstring$
inc loopf%
wend
addstring char$(medit#,(loopf%*250),memlen&-(loopf%*250))
@DBPUTMEMO("ELTEXT")
dbputrec(0)
Huch! Was ich jetzt noch nicht hinkriege, sind die Zeilenumbrüche. Bei der gezeigten Variante verschwinden sie, dafür aber werden Leerzeichen z.T. mitten in ein Wort gefügt.
Wie bringe ich das mit den Zeilenumbrüchen hin?
herzlich
Alistair
|
|
|