Inahlt einer Listbox in ein Array füllen

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
vorti
UDF-Programmierer
UDF-Programmierer
Beiträge: 61
Registriert: Mo, 25. Sep 2017 12:21

Inahlt einer Listbox in ein Array füllen

Beitrag von vorti »

Hallo,
ich blick gerade mal wieder nicht durch.
Ich fülle ein Array mit directory und übergebe das dann in eine Listbox. Bevor ich im Programm zur Listbox komme, habe ich ein SLE Feld, wo ich z.B.
ein Buchstabe eingeben und dann werden in der Listbox nur die ensprechenden Dateien angezeigt die mit diesem beginnen.

Mein Problem ist nun, dass die Position der Listbox natürlich nicht mehr zur Position in dem Array passt. Leider will es mir nicht gelingen, das ich die Strings aus der Listbox in ein neues Array übergebe.
Hier mal noch der QC

Code: Alles auswählen

FUNCTION FarrayToListBox( oListBox, cDateipfad, aTxtFiles )
********************************************
local i := 0,;
      nLen := Len( aTxtFiles ),;
      cDatei

do while ++i <= nLen
        cDatei :=  aTxtFiles[i, F_NAME]

   if upper( substr( cDateipfad, 1, Len( cDateipfad ))) == upper( substr( cDatei, 1, Len( cDateipfad )))
      oListBox:addItem( cDatei )
	AAdd( ZWEITESARRAY, cDatei )
   endif
end do


return oListBox

Code: Alles auswählen

nPos := oListBox:getData()[1]
cDateipfad := ZWEITESARRAY[nPos]
oI_SLE:setData( cDateipfad )
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Inahlt einer Listbox in ein Array füllen

Beitrag von AUGE_OHR »

hi,

ein "zusätzliches" SLE benötigt man eigentlich nicht denn die Listbox reagiert ja auf den ersten Buchstaben.

Code: Alles auswählen

nPos := oListBox:getData()[1]
cDateipfad := ZWEITESARRAY[nPos]
warum du es auf das 2nd Array beziehst ist mir nicht klar ...

Code: Alles auswählen

cDateipfad := aTxtFiles[nPos]
gruss by OHR
Jimmy
vorti
UDF-Programmierer
UDF-Programmierer
Beiträge: 61
Registriert: Mo, 25. Sep 2017 12:21

Re: Inahlt einer Listbox in ein Array füllen

Beitrag von vorti »

Das SLE und die Listbox werden separat aufgerufen (soll so sein, ist nicht von mir).
Wenn ich jetzt mein Array fülle (mit directory), sagen wir mit Dateiname A1-A10 und B1-B10 und in das SLE ein "B" tippe, danach die Listbox aufrufe, ist die Listbox auch nur mit B1-B10 gefüllt. Wenn ich jetzt daraus z.B. das 3te Element wähle, bekomme ich ja aus dem "ersten Array" trotzdem "A3".
Deswegen brauche ich das zweite Array, welches nur mit den Elementen B1-B10 gefüllt ist (oder Alternativ halt ne bessere Idee wie ich diese auswähle).
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Inahlt einer Listbox in ein Array füllen

Beitrag von AUGE_OHR »

JA ... du füllst ja nur die auf und suchst nicht inkrementell wo man mehr als 1 Buchstaben eingibt.

ok ... also dann so

Code: Alles auswählen

   oListbox:itemSelected := {|u1,u2,o| cSuch := o:GetItem( o:Getdata()[1] ) }
gibt dir den "Text" des gewählten Elements. den könntest du zum suchen im grossen Array nehmen.

Code: Alles auswählen

   nPosi := ASCAN(aTxtFiles, { |x| x[F_NAME] = cSuch } )
gruss by OHR
Jimmy
vorti
UDF-Programmierer
UDF-Programmierer
Beiträge: 61
Registriert: Mo, 25. Sep 2017 12:21

Re: Inahlt einer Listbox in ein Array füllen

Beitrag von vorti »

Ja, habe es eben selbst herausgefunden. Wenn man "getItem" kennt ist es ganz einfach.
Antworten