Text aus Gombobox auslesen und speichern

Anfängerfragen zum Programmieren mit PureBasic.
gnaps
Beiträge: 151
Registriert: 02.09.2008 13:02

Text aus Gombobox auslesen und speichern

Beitrag 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
PureBasic Vollversion V 5.71 für Windows - Windows 10 (64)
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Text aus Gombobox auslesen und speichern

Beitrag 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.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Bisonte
Beiträge: 2425
Registriert: 01.04.2007 20:18

Re: Text aus Gombobox auslesen und speichern

Beitrag 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...
PureBasic 6.04 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom​​
Antworten