Daten aus Stringgadget auslesen
Daten aus Stringgadget auslesen
Hallo!
Ich schreibe derzeit ein Programm und benötige dort folgendes:
1) Text, der mithilfe von Stringgadget eingegeben wird auslesen + in externe
Datei speichern, auf die danach wieder zugegriffen werden kann.
2) Text aus externe Datei auslesen + ausgeben.
3) Wenn man auf Button klickt, der Stringgadget (oder anderen Gadget erzeugt), überprüfen, ob vorher schon mit einem anderen Button ein Gadget erzeugt wurde (damit sie sich nicht über"kreuzen").
Danke für die Hilfe!
Ich schreibe derzeit ein Programm und benötige dort folgendes:
1) Text, der mithilfe von Stringgadget eingegeben wird auslesen + in externe
Datei speichern, auf die danach wieder zugegriffen werden kann.
2) Text aus externe Datei auslesen + ausgeben.
3) Wenn man auf Button klickt, der Stringgadget (oder anderen Gadget erzeugt), überprüfen, ob vorher schon mit einem anderen Button ein Gadget erzeugt wurde (damit sie sich nicht über"kreuzen").
Danke für die Hilfe!
>1) Text, der mithilfe von Stringgadget eingegeben wird auslesen
GetGadgetText(#Gadget)
>Datei speichern
CreateFile(), WriteString() oder WriteStringN() ...
>2) Text aus externe Datei auslesen
ReadFile() oder OpenFile(), ReadString() ...
>ausgeben
String$ = ReadString()
Debug String$
Bitte unbedingt die PB-Hilfe lesen
GetGadgetText(#Gadget)
>Datei speichern
CreateFile(), WriteString() oder WriteStringN() ...
>2) Text aus externe Datei auslesen
ReadFile() oder OpenFile(), ReadString() ...
>ausgeben
String$ = ReadString()
Debug String$
Bitte unbedingt die PB-Hilfe lesen

Hi und danke für die schnelle Antwort.RSBasic hat geschrieben:>1) Text, der mithilfe von Stringgadget eingegeben wird auslesen
GetGadgetText(#Gadget)
>Datei speichern
CreateFile(), WriteString() oder WriteStringN() ...
>2) Text aus externe Datei auslesen
ReadFile() oder OpenFile(), ReadString() ...
>ausgeben
String$ = ReadString()
Debug String$
Bitte unbedingt die PB-Hilfe lesen

Die PB-Hilfe habe ich ja gelesen/bzw. ich bin auch auf CreateFile() gestoßen und mit dem GetGadgetText(#Gadget), aber irgendwas mach ich falsch (was ein Wunder

Hier der Codeausschnitt:
Code: Alles auswählen
Case 1 :
If CreateGadgetList(WindowID(0))
StringGadget(6, 200, 0, 800, 400, "Eingabe ")
ButtonGadget(7, 200,400, 100, 50, "Eingeben")
EndIf
If GetGadgetText(#Gadget)
CreateFile(0, "test.txt")
Else
MessageRequester("Fehler", "fehler")
EndIf
Durch was muss ich "#Gadget" ersetzen?
2. Frage:
Funktioniert es dann, dass er den Text des einen Stringgadgets (ich habe mehrere Stringgadgets benutzt) in die Datei "test.txt" speichert?
MfG!
Ach du schreck... 
Also: Unbeding mal in der hilfe nach den Parametern von den Befehlen schauen,
die du da benutzt....
Dann kommst du mit sicherheit ganz schnell alleine drauf
Aber ein kleiner Tip:
Du definierst ein StringGagdget mit der Nummer 6, also sollte man evt. mit
GetGadgetText auch das Gadget Nr 6 auslesen....
Und in der Hilfe solltest du auch die Beispiele studieren....

Also: Unbeding mal in der hilfe nach den Parametern von den Befehlen schauen,
die du da benutzt....
Dann kommst du mit sicherheit ganz schnell alleine drauf

Aber ein kleiner Tip:
Du definierst ein StringGagdget mit der Nummer 6, also sollte man evt. mit
GetGadgetText auch das Gadget Nr 6 auslesen....
Und in der Hilfe solltest du auch die Beispiele studieren....
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom
Ahh...danke!Bisonte hat geschrieben:Ach du schreck...
Also: Unbeding mal in der hilfe nach den Parametern von den Befehlen schauen,
die du da benutzt....
Dann kommst du mit sicherheit ganz schnell alleine drauf
Aber ein kleiner Tip:
Du definierst ein StringGagdget mit der Nummer 6, also sollte man evt. mit
GetGadgetText auch das Gadget Nr 6 auslesen....
Und in der Hilfe solltest du auch die Beispiele studieren....


Das Problem wäre gelöst, jedoch schreibt er nicht den eingegebenen Text
aus dem Stringgadget in die Datei, wie löse ich denn das Problem?
In der Hilfe habe ich nichts dazu gefunden, nur wie man eigenständige
Dateien erstellt.
Code: Alles auswählen
Ergebnis = CreateFile(#Datei, DateiName$)
Also kann ich CreateFile() doch gar nicht verwenden, oder?Öffnet eine leere Datei. Existierte die angegebene Datei bereits, wird diese geöffnet und mit einem leeren Inhalt ersetzt! Seien Sie vorsichtig!
Bei WriteString() blick ich nicht so ganz durch...bitte noch mal um hilfe

Und wieder sagt man : Studiere auch die Beispiele... 
Da gibts auch eines was sehr schon die Befehle zeigt, die man braucht... und wie man sie zusammen verwendet...

Da gibts auch eines was sehr schon die Befehle zeigt, die man braucht... und wie man sie zusammen verwendet...
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom
Hallo Odin,
ich habe mal ein Beispiel für Dich gecodet, dass eigentlich genau das tut, was Du Dir vorgestellt hast. Jetzt musst Du mir aber versprechen, dass Du Dir mal die Anfänger-Tutorials zu Gemüte führst!
ich habe mal ein Beispiel für Dich gecodet, dass eigentlich genau das tut, was Du Dir vorgestellt hast. Jetzt musst Du mir aber versprechen, dass Du Dir mal die Anfänger-Tutorials zu Gemüte führst!
Code: Alles auswählen
Enumeration ; nummeriert die Konstanten durch
#MainWindow ; wird 0
#StringGadget ; wird 1
#ButtonGadget_1 ; wird 2
#ButtonGadget_2
#File
#EditorGadget
#TextGadget ; wird 6
EndEnumeration
; Fenster und Gadgets erstellen
OpenWindow(#MainWindow,#PB_Ignore,#PB_Ignore,320,240,"Eingabefenster")
CreateGadgetList(WindowID(#MainWindow))
StringGadget(#StringGadget,0,0,100,20,"Eingabe hier")
ButtonGadget(#ButtonGadget_1,0,40,60,20,"Bestätigen")
TextGadget(#TextGadget,0,80,160,20,"keine Daten")
ButtonGadget(#ButtonGadget_2,0,120,60,20,"Auslesen")
EditorGadget(#EditorGadget,0,140,320,100,#PB_Editor_ReadOnly)
Repeat ; Hauptschleife
Event= WaitWindowEvent() ; auf aktuelles Event warten und dann merken
If Event=#PB_Event_Gadget ; falls ein Gadget aktiviert wurde
If EventGadget()= #ButtonGadget_1 ; falls der Button geklickt wurde
Eingabetext$= GetGadgetText(#StringGadget) ; Eingabe auslesen
OpenFile(#File,"text.txt") ; Datei öffnen
FileSeek(#File,Lof(#File)) ; an das Ende der Datei gehen
WriteStringN(#File,Eingabetext$) ; Eingabe in Datei schreiben
SetGadgetText(#TextGadget,Eingabetext$ + " gespeichert") ; Eingabe in Textfeld als gespeichert ausgeben
CloseFile(#File) ; Datei schließen
EndIf
If EventGadget()= #ButtonGadget_2 ; falls der zweite Button geklickt wurde
OpenFile(#File,"text.txt") ; Datei öffnen
ClearGadgetItemList(#EditorGadget) ; EditorGadget leeren
Repeat
GelesenerString$= ReadString(#File) ; String auslesen
If GelesenerString$ <> "" ; Falls String gelesen wurde (aus der Datei)
AddGadgetItem(#EditorGadget,-1,GelesenerString$) ; im EditorGadget an letzter Position ausgeben
EndIf
Until GelesenerString$ = ""
CloseFile(#File)
EndIf
EndIf ; Event=#PB_Event_Gadget
Until Event= #PB_Event_CloseWindow ; Ende der Hauptschleife
(Win 11 64-bit, PB 6.04 und 6.10)