Allgemeine Fragen zur PROFAN Programmierung
Views (Heute): 241149 (2585)
  Suchen
 Zurück zur Übersicht
 AutorThema: Sortierung im Listfeld
Manfred Loibl
Datum:14.05.02 18:48 Antwortenals Email verschicken (gp2@gmx.de) 


Habe eine Frage zu Profan 7.0+7.5

Gibt es eine Möglichkeit, in einem sortierten Listfeld, die
Einträge, von einer bestimmte Stelle und Länge, sortieren zu lassen. Zur Zeit werden Sie vom Anfang bis Ende des Strings sortiert. Meine Zeilen sehen wie folgt aus:

Herrn Manfred Loibl usw.
Frau Sonja Colletti usw.

Die Sortierung sollte also nur nach dem Namen erfolgen.

Ich bedanke mich im voraus

MFG
Manfred Loibl


Jörg Sellmeyer
Datum:14.05.02 19:18 Antwortenals Email verschicken (joerse@gmx.de) 


Hallo,
Es würde mich sehr wundern wenn das geht, deswegen behaupte ich einfach es geht nicht.
Wenn es nur ein optisches Problem ist kann ich Dir nicht weiterhelfen.
Wenn Du die Daten weiterverarbeiten willst, könntest Du beim Auslesen Deiner Listbox das Herr oder Frau ergänzen.
Manfred Loibl m
Sonja Coletti w
If Right$(GetString$(Listbox&,0),1)="m"
Eintrag$ = "Herr " + Left$(GetString$(Listbox&,0),Len(GetString$(Listbox&,0)) - 1)
Else
Eintrag$ = "Frau " + Left$(GetString$(Listbox&,0),Len(GetString$(Listbox&,0)) - 1)
Endif


Vielleicht hilft's ja weiter.
Gruß
Jörg


Rolf Koch
Datum:15.05.02 11:42 Antwortenals Email verschicken (webmaster@rokosoft.de) 


Hi Manfred
Wenn ich Dich richtig verstanden habe, willst Du nach Namen sortieren und trotzdem das Herr oder Frau davor haben, richtig?
Hier eine Idee (natürlich kann man das ein oder andere kürzen) die eigentlich nur 2 Procs aufruft.
Hoffe es ist das richtige ;)

'********************** HINWEISE ********************************
' CODE ERZEUGT MIT ROKO'S OBJECT CREATOR V 2.5
' DATUM  14.05.2002    um  23:36 Uhr


SETTRUECOLOR 1
DECLARE ENDE%,Name$,Geschlecht$,gpos%
DECLARE SORTEDLISTBOX1%,Listbox1%,listbox2%
DECLARE BUTTON1%,zahl%,eintrag$,string$
WINDOWSTYLE 527
WINDOW 254,108-234,241
WINDOWTITLE "Liste"
CLS @RGB(212,208,200)
USEFONT "MS Sans Serif",13,0,0,0,0
SETDIALOGFONT 1


PROC VAR_BEARBEIT
	zahl%=0
	clearlist
	Whilenot equ(zahl%,@GetCount(listbox2%))
	  ' Könnte alles noch zusammengefasst werden:
          eintrag$=@GetString$(listbox2%,zahl%)
	  Name$=@Mid$(eintrag$,6,100)
	  Geschlecht$=@Mid$(eintrag$,1,4)
	  string$=Name$,Geschlecht$	' String wird umgedreht
          Addstring(sortedlistbox1%,string$)
           inc zahl%
        wend
	zahl%=0
ENDPROC

PROC Liste_fuellen
	zahl%=0
	clearlist
	Whilenot equ(zahl%,@GetCount(sortedlistbox1%))
	  ' Könnte alles noch zusammengefasst werden:
          eintrag$=@GetString$(sortedlistbox1%,zahl%)
	  'Ermitteln des Geschlechts:	
	  Gpos%=or(@Instr("Herr",eintrag$),@Instr("Frau",eintrag$))
	  'Name ermitteln
	  Name$=@Mid$(eintrag$,1,sub(Gpos%,1)) 	
	  'Geschlecht wiederum ermitteln
	  Geschlecht$=@Mid$(eintrag$,Gpos%,4)
	  'und nochmals zusammensetzen (also umdrehen)	
	  String$=Geschlecht$,Name$
          Addstring(listbox1%,string$)	   
           inc zahl%
        wend
	zahl%=0
Endproc
' Anzeige in einer unsortierten Listbox:
LISTBOX1% =CREATE("LISTBOX",%HWND,"SORTEDLISTBOX1",0030,0020,0167,0120)

' Zum Einlesen gedacht:
BUTTON1% =CREATE("BUTTON",%HWND,"Einlesen",0068,0161,0088,0024)

' Diese Listboxen sind nur zum Sortieren im Hintergrund gedacht:-------------------
SORTEDLISTBOX1% =CREATE("SORTEDLISTBOX",%HWND,"SORTEDLISTBOX1",0000,0000,0000,0000)
LISTBOX2% =CREATE("SORTEDLISTBOX",%HWND,"SORTEDLISTBOX1",0000,0000,0000,0000)
'----------------------------------------------------------------------------------

' Hier die normale Übergabe in eine Liste 
' aber: in eine normale versteckte Liste!
clearlist
Addstring(listbox2%,"Herr Markus Müller")
Addstring(listbox2%,"Frau Sabine Meyer")
Addstring(listbox2%,"Frau Martina Arand")
Addstring(listbox2%,"Herr Achim Urich")
Addstring(listbox2%,"Herr Sandro Bayer")
Addstring(listbox2%,"Frau Tatjana Kindl")
Addstring(listbox2%,"Herr Lars Vandolis")
Addstring(listbox2%,"Herr Detlev Insbruck")
Addstring(listbox2%,"Frau Eva Liebharr")
Addstring(listbox2%,"Herr Peter Salotti")
Addstring(listbox2%,"Frau Regina Leinberg")
Addstring(listbox2%,"Herr Ferdinand Hortig")
Addstring(listbox2%,"Frau Gina Loloria")

WHILENOT ENDE%
WAITINPUT
   If @EQU(%KEY,2)
	LET ENDE%= 1
   ELSEIF GETFOCUS(SORTEDLISTBOX1%) 'SORTEDLISTBOX

   ELSEIF GETFOCUS(BUTTON1%) 'BUTTON
	Var_Bearbeit	'Proc zum Stringbearbeiten.	
	Liste_fuellen	'Proc zum Liste füllen (eine Unsortierte)
   ENDIF
WEND


Rolf Koch


Manfred Loibl
Datum: 15.05.02 13:31 Antwortenals Email verschicken (gp2@gmx.de) 


Danke für die schnelle Antwort

MFG
Manfred Loibl


 Zurück zur Übersicht