Bearbeiten von Memofeldern oder Textdateien
Datei:...\Samples\Solution\Controls\TXT_EDT\Editbox.scx
Dieses Beispiel verhilft Ihnen dazu, sich einen Text aus einem Memofeld oder einer Textdatei in einem Bearbeitungsfeld ansehen bzw. bearbeiten zu können.
Die Anzeige von Text aus einem Memofeld lässt sich leicht erreichen, indem die ControlSource des Bearbeitungsfeldes auf das Memofeld gesetzt wird.
Es gibt zwei Möglichkeiten, eine Textdatei in einem Bearbeitungsfeld zu bearbeiten: Verwenden von Low-Level-Dateifunktionen oder Erstellen einer Cursordatei zur Aufnahme des Textes. Dieses Beispiel verwendet eine Cursordatei und keine Low-Level-Dateifunktionen.
Bearbeiten einer Textdatei mit Dateifunktionen auf Low-Level-Ebene
Sie können eine Datei unter Verwendung von FOPEN( ) öffnen, den Inhalt derselben unter Verwendung von FREAD( ) lesen und diesen in einer Speichervariablen oder in der Value-Eigenschaft eines Bearbeitungsfeldes speichern. Änderungen können Sie dann mit Hilfe von FWRITE( ) schreiben und die Datei mittels FCLOSE( ) schließen.
Bearbeiten einer Textdatei durch Laden der Datei in ein Cursorfeld
Der Vorteil beim Erstellen eines Cursorfeldes für eine Textdatei besteht nicht nur darin, dass der Code etwas einfacher ist, sondern insbesondere auch darin, dass Visual FoxPro in der Lage ist, große Textmengen eines Cursors bei Speicherplatzmangel in temporäre Dateien zu schreiben.
IF SELECT("textfile") = 0
CREATE CURSOR textfile (filename c(60),mem m)
APPEND BLANK
ENDIF
REPLACE textfile.FileName WITH GETFILE("TXT")
IF EMPTY(textfile.FileName)
RETURN
ENDIF
SELECT textfile
APPEND MEMO mem FROM (textfile.FileName) OVERWRITE
THIS.Parent.edtText.ControlSource = "textfile.mem"
THIS.Parent.cmdSave.Enabled = .T.
THIS.Parent.lblFileName.Caption = ALLTRIM(textfile.FileName)
THIS.Parent.Refresh