Seite 1 von 1

Daten aus Stringgadget auslesen

Verfasst: 05.08.2008 23:30
von odin
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!

Verfasst: 05.08.2008 23:40
von RSBasic
>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 :wink:

Verfasst: 05.08.2008 23:58
von odin
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 :wink:
Hi und danke für die schnelle Antwort. :)
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 :roll: )

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
1. Frage:
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!

Verfasst: 06.08.2008 00:10
von Bisonte
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....

Verfasst: 06.08.2008 00:21
von odin
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....
Ahh...danke! :oops: :oops:
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$)
Außerdem steht darunter:
Öffnet eine leere Datei. Existierte die angegebene Datei bereits, wird diese geöffnet und mit einem leeren Inhalt ersetzt! Seien Sie vorsichtig!
Also kann ich CreateFile() doch gar nicht verwenden, oder?
Bei WriteString() blick ich nicht so ganz durch...bitte noch mal um hilfe :cry:

Verfasst: 06.08.2008 00:36
von Andreas_S
Die Datei hat ebenfalls eine ID...
Also auch dort einfügen.

Ich kann dir nur sagen dass das so nicht lange witer gehn wird...
Es gibt ausreichend tutorials die solche Fragen klären...

PureBoard hat geschrieben:BeitragVerfasst am: Gestern um 0:21:59 Titel:
:?

Verfasst: 06.08.2008 01:47
von Bisonte
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...

Verfasst: 06.08.2008 09:51
von Sebastian
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!

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

Verfasst: 06.08.2008 11:30
von odin
Hi!

Vielen, vielen Dank!
Sorry für den Aufwand :oops: , ich werde mir euren Rat jetzt echt zu Gemüte ziehen: Mehr Tutotials machen und die Hilfe ordentlich durchgehen. :oops:

Trotzdem, vielen großen Dank noch mal für die ganze Hilfe und für die Ratschläge![/b]