Seite 1 von 2
Text aus Datei in TextGadget einladen
Verfasst: 29.09.2005 18:54
von satzzeichen
Hallo,
ich habe in meiner Applikation ein EditorGadget und würde es gerne handhaben, dass der Benutzer etwas reinschreiben kann und der Text beim beenden gespeichert wird.
Jetzt bereitet mir nicht das Speichern ein Problem, sondern das Laden!
Habe schon mehreres probiert z.B.
Code: Alles auswählen
OpenFile(0, "notiz.txt")
notiz$ = ReadString()
SetGadgetText(9, notiz$)
CloseFile(0)
aber er liest immer nur eine Zeile in das Gadget ein

wäre sehr froh, wenn ihr mir helfen könntet!
MfG Satzzeichen
bitte!
Verfasst: 29.09.2005 19:06
von FISCHAUGE
somit liest er Enter und space auch mit!
Verfasst: 29.09.2005 19:09
von Eric
Du musst die Datei Zeile für Zeile auslesen.
Und möglicherweise noch den Zeilenumbruch hinzufügen (chr(13)+chr(10))
Re: Text aus Datei in TextGadget einladen
Verfasst: 29.09.2005 19:13
von Kiffi
Code: Alles auswählen
; Datei zum Lesen öffnen
FF = ReadFile(#PB_Any, "notiz.txt")
If FF ; Öffnen hat geklappt?
While Eof()=0 ; Datei bis zu Ende lesen
; Jede Zeile wird zur Variable notiz$ hinzugefügt
notiz$ + ReadString() + #CRLF$
Wend
; Datei schliessen
CloseFile(FF)
; Variableinhalt in Gadget einfügen
SetGadgetText(9, notiz$)
Else
MessageRequester("", "Die Datei konnte nicht geladen werden.")
EndIf
Ich hoffe, dass sich der Code von selber erklärt.
Grüße ... Kiffi
Verfasst: 29.09.2005 19:18
von satzzeichen
Daaaaanke Kiffi

Re: bitte!
Verfasst: 29.09.2005 19:21
von Kiffi
FISCHAUGE hat geschrieben:
somit liest er Enter und space auch mit!
richtiger Ansatz, falsche Erklärung
sorgt dafür, dass die Stringvariable '[c]Irgendwas[/c]' mit der
nächstausgelesenen Zeile der aktuell geöffneten Datei gefüllt wird. Zusätzlich
wird ein Zeilenumbruch mit [c]Chr(13)+Chr(10)[/c] hinzugefügt.
[c]Chr(13)+Chr(10)[/c] kann man auch ein wenig kürzer mit #CRLF$
schreiben.
Mit Space [c]Chr(32)[/c] hat das ganze nichts zu tun. Auch wird mit dieser einen
Anweisung nicht der gesamte Inhalt aus der Datei ausgelesen, so wie es
satzzeichen haben wollte
@Eric:
Hierbei wir text$ immer mit der zuletzt eingelesenen Zeile überschrieben. Du wolltest sicherlich folgendes schreiben:
Grüße ... Kiffi
Verfasst: 29.09.2005 19:32
von PAMKKKKK

Mann Kiffi, hast du heute deine Pillen gegen das Helfersyndrom noch nicht genommen?
Kiffi

Verfasst: 29.09.2005 19:35
von MVXA
Wobei ich diese Methode zum Auslesen bevorzugen würde:
Verfasst: 29.09.2005 19:44
von ts-soft
Ich bevorzuge diese:
Code: Alles auswählen
Procedure StreamFileIn_Callback(hFile, pbBuff, cb, pcb)
ProcedureReturn ReadFile_(hFile, pbBuff, cb, pcb, 0)!1
EndProcedure
Procedure Editor_LoadText(Gadget, FileID, File.s)
Protected File
Protected FileID
Protected Gadget
Protected StreamData.EDITSTREAM
If ReadFile(FileID, File)
StreamData\dwCookie = UseFile(FileID)
StreamData\dwError = #Null
StreamData\pfnCallback = @StreamFileIn_Callback()
SendMessage_(GadgetID(Gadget), #EM_STREAMIN, #SF_TEXT, @StreamData)
CloseFile(FileID)
EndIf
EndProcedure
Aber für Anfänger vielleicht nicht ganz das richtige

Verfasst: 29.09.2005 19:46
von MVXA
Jo, das ist die bekannte Spatzenkanone

...