Seite 1 von 1

Text aus Gombobox auslesen und speichern

Verfasst: 16.07.2019 16:53
von gnaps
Hallo Leute,

ich hab da mal wieder ein Problem und komme nicht auf die Lösung.

Ich habe eine Adressverwaltung
hier habe ich für die Anrede ein
ComboBoxGadget = #com_AdresseAnrede
das Gadget hat den Flag #PB_ComboBox_Editable also beschreibbar

ich lese aus einer Anrede.txt Datei die Anreden aus und füge diese in das ComboBoxGadget.

bis hier her alles gut.

So jetzt kommts.
Wenn ich nun eine neue Anrede eingebe die noch nicht in der ComboBox bzw. in der Anrede.txt enthalten ist
möchte ich diese in die Combobox aufnehmen und in der Anrede.txt schreiben, damit ich beim nächsten mal
diese Anrede auch in der Box wieder habe.

Jede Anrede soll nur einmal vorhanden sein.

ich bekomme es einfach nicht hin.

Meine Schritte:
ich habe eine neue Liste Global NewList AdresseAnrede.s()
beim speichern der Adresse lese ich die Combobox-Einträge und füge diese in meine Liste
weiter kommt in die Liste immer noch die Anrede über getgadgettext(#com_AdresseAnrede)

dann vergleiche ich die Liste mit den Combobox-Einträge

Code: Alles auswählen


  z=0
  ForEach AdresseAnrede.s()
    If AdresseAnrede.s()=GetGadgetText(#com_AdresseAnrede)
      z+1
    EndIf  
  Next
  ForEach AdresseAnrede.s()
    If AdresseAnrede.s()=GetGadgetText(#com_AdresseAnrede)
    If z>1
      DeleteElement(AdresseAnrede.s(),1)
     z-1
    EndIf
    EndIf
  Next 
  ClearGadgetItems(#com_AdresseAnrede)
    SortList(AdresseAnrede.s(),#PB_Sort_Ascending)
    ForEach AdresseAnrede.s()
      AddGadgetItem(#com_AdresseAnrede,-1,AdresseAnrede.s())
    Next  
    DeleteFile(DateiAdresseAnrede.s)
    If CreateFile(0,DateiAdresseAnrede.s)
      ForEach AdresseAnrede.s()
        WriteStringN(0,AdresseAnrede.s())
      Next
      CloseFile(0)
    EndIf  
    SetGadgetText(#com_AdresseAnrede,AndresseAnrede.s)
    Debug AndresseAnrede.s


sind die Einträge doppelt dann lösche diese bis auf eins.
Danach sortiere mir die Liste nach ABC.

Das ganze sieht mir zu aufwändig aus, hat da jemand etwas besseres.

Gruß
gnaps

Re: Text aus Gombobox auslesen und speichern

Verfasst: 16.07.2019 16:57
von RSBasic
Warum benutzt du keine Map? Dann musst du nicht jedes Mal selber prüfen, ob der Eintrag doppelt ist. Vorallem wenn die Liste sehr lang ist, ist das Durchlaufen und Prüfen langsamer, als wenn du eine Map direkt benutzt.

Re: Text aus Gombobox auslesen und speichern

Verfasst: 16.07.2019 19:25
von Bisonte
RSBasic hat geschrieben:Warum benutzt du keine Map? Dann musst du nicht jedes Mal selber prüfen, ob der Eintrag doppelt ist. Vorallem wenn die Liste sehr lang ist, ist das Durchlaufen und Prüfen langsamer, als wenn du eine Map direkt benutzt.
Vermutlich nutzt er keine Map(), weil damit keine Sortierung möglich ist...