|  | 		    
					
        
         
          
         
	
          | |  | Select case [VB6] Fra : Jens Vestergaard
 | 
 Dato :  23-07-02 10:18
 | 
 |  | 
 
            Hejsa
 Det er sikkert langt ude, men man ved sq aldrig - der findes jo så meget:
 Er nogen stødt på en kontrol, en kode-snip, en add-in eller andet godt, der
 er i stand til pr. automatik at alfabetisere/sortere en Select Case-række
 select case
     case "abe"
     ...
     ...
     case "zebra"
 end select
 --
 mvh
 Jens Vestergaard
www.railsoft.dk --------
 Indsæt v før snablen
            
             |  |  | 
  Tomas Christiansen (23-07-2002) 
 
	
          | |  | Kommentar Fra : Tomas Christiansen
 | 
 Dato :  23-07-02 15:14
 | 
 |  | Jens Vestergaard skrev:
 > Er nogen stødt på en kontrol, en kode-snip, en add-in eller andet
 godt, der
 > er i stand til pr. automatik at alfabetisere/sortere en Select
 Case-række
 >
 > select case
 >     case "abe"
 >     ...
 >     ...
 >     case "zebra"
 > end select
 
 Hvis det er på den simple form, som du her angiver, er det vel ikke så
 svært at skrive et lille program selv!
 
 -------
 Tomas
 
 
 
 |  |  | 
  Jens Vestergaard (23-07-2002) 
 
	
          | |  | Kommentar Fra : Jens Vestergaard
 | 
 Dato :  23-07-02 16:39
 | 
 |  | 
 
            "Tomas Christiansen" <toc@blikroer.removethis.dk> skrev i en meddelelse
 news:ahjoas$2sts$1@news.cybercity.dk...
 > Jens Vestergaard skrev:
 > > Er nogen stødt på en kontrol, en kode-snip, en add-in eller andet
 > godt, der
 > > er i stand til pr. automatik at alfabetisere/sortere en Select
 > Case-række
 >
 > Hvis det er på den simple form, som du her angiver, er det vel ikke så
 > svært at skrive et lille program selv!
 Jeg må indrømme, at jeg er på Herrens mark m.h.t. at skrive noget, der skal
 fungere *inde* i VBs IDE...
 Jeg må nok hellere ty til lidt disciplin og alfabetisere manuelt fra starten
   --
 mvh
 Jens Vestergaard
www.railsoft.dk --------
 Indsæt v før snablen
 >
 > -------
 > Tomas
 >
            
             |  |  | 
   Helge Bjørkhaug (23-07-2002) 
 
	
          | |  | Kommentar Fra : Helge Bjørkhaug
 | 
 Dato :  23-07-02 20:39
 | 
 |  | 
 
            On Tue, 23 Jul 2002 17:39:16 +0200, "Jens Vestergaard" <j@railsoft.dk>
 wrote:
 >"Tomas Christiansen" <toc@blikroer.removethis.dk> skrev i en meddelelse
 >news:ahjoas$2sts$1@news.cybercity.dk...
 >> Jens Vestergaard skrev:
 >> > Er nogen stødt på en kontrol, en kode-snip, en add-in eller andet
 >> godt, der
 >> > er i stand til pr. automatik at alfabetisere/sortere en Select
 >> Case-række
 >>
 >> Hvis det er på den simple form, som du her angiver, er det vel ikke så
 >> svært at skrive et lille program selv!
 >
 >Jeg må indrømme, at jeg er på Herrens mark m.h.t. at skrive noget, der skal
 >fungere *inde* i VBs IDE...
 >
 >Jeg må nok hellere ty til lidt disciplin og alfabetisere manuelt fra starten
 Stikkord = Clipboard    * marker tekst
 * Copy i VB
 * Ditt "lille" hjelpeprogram henter tekst fra Clipboard,
   den sorterer Case-staements, sortert tekst tilbake til Clipboard
 * Paste i VB (med "gammel" tekst fortsatt selektert)
 Finnes sikkert en mer elegant måte å løse det på, men det er en start...
 -- 
 Snutten
 Fjern helge og .invalid fra mailadressen før du svarer via mail.
            
             |  |  | 
    Jens Vestergaard (23-07-2002) 
 
	
          | |  | Kommentar Fra : Jens Vestergaard
 | 
 Dato :  23-07-02 20:45
 | 
 |  | 
 
            "Helge Bjørkhaug" <helgesnutt@techie.online.no.invalid> skrev i en
 meddelelse news:okbrjugd76c8l1p8ie991spu35q7np77no@4ax.com...
 > On Tue, 23 Jul 2002 17:39:16 +0200, "Jens Vestergaard" <j@railsoft.dk>
 > wrote:
 >
 > >> Jens Vestergaard skrev:
 > >> > Er nogen stødt på en kontrol, en kode-snip, en add-in eller andet
 > >> godt, der
 > >> > er i stand til pr. automatik at alfabetisere/sortere en Select
 > >> Case-række
 > Stikkord = Clipboard    > * marker tekst
 > * Copy i VB
 > * Ditt "lille" hjelpeprogram henter tekst fra Clipboard,
 >   den sorterer Case-staements, sortert tekst tilbake til Clipboard
 > * Paste i VB (med "gammel" tekst fortsatt selektert)
 > Finnes sikkert en mer elegant måte å løse det på, men det er en start...
 Jae, og vel ikke så tosset...    Lidt kreativ tænkning er godt. Tak for
 ideen.
 --
 mvh
 Jens Vestergaard
www.railsoft.dk --------
 Indsæt v før snablen
            
             |  |  | 
     Tomas Christiansen (23-07-2002) 
 
	
          | |  | Kommentar Fra : Tomas Christiansen
 | 
 Dato :  23-07-02 22:27
 | 
 |  | 
 
            Jens Vestergaard skrev:
 > > Stikkord = Clipboard    > > * marker tekst
 > > * Copy i VB
 > > * Ditt "lille" hjelpeprogram henter tekst fra Clipboard,
 > >   den sorterer Case-staements, sortert tekst tilbake til Clipboard
 > > * Paste i VB (med "gammel" tekst fortsatt selektert)
 ....
 > Jae, og vel ikke så tosset...    Lidt kreativ tænkning er godt. Tak
 for ideen.
 Hvis du ikke vil rode med clip-boardet med det samme, så start med at
 lave et program med en textbox, hvor du kan paste din select ind i.
 Du kan så vælge at opdatere samme textbox med resultatet, eller du kan
 have en liggende ved siden af med resultatet, så man let kan
 sammenligne. Det kan måske være lettere i programmeringsfasen.
 -------
 Tomas
            
             |  |  | 
      Helge Bjørkhaug (24-07-2002) 
 
	
          | |  | Kommentar Fra : Helge Bjørkhaug
 | 
 Dato :  24-07-02 06:16
 | 
 |  | 
 
            On Tue, 23 Jul 2002 23:27:02 +0200, "Tomas Christiansen"
 <toc@blikroer.removethis.dk> wrote:
 >Jens Vestergaard skrev:
 >> > Stikkord = Clipboard    >> > * marker tekst
 >> > * Copy i VB
 >> > * Ditt "lille" hjelpeprogram henter tekst fra Clipboard,
 >> >   den sorterer Case-staements, sortert tekst tilbake til Clipboard
 >> > * Paste i VB (med "gammel" tekst fortsatt selektert)
 >...
 >> Jae, og vel ikke så tosset...    Lidt kreativ tænkning er godt. Tak
 >for ideen.
 >
 >Hvis du ikke vil rode med clip-boardet med det samme, så start med at
 >lave et program med en textbox, hvor du kan paste din select ind i.
 >
 >Du kan så vælge at opdatere samme textbox med resultatet, eller du kan
 >have en liggende ved siden af med resultatet, så man let kan
 >sammenligne. Det kan måske være lettere i programmeringsfasen.
 God ide. Og array's er en fin ting    -- 
 Snutten
 Fjern helge og .invalid fra mailadressen før du svarer via mail.
            
             |  |  | 
      Jens Vestergaard (24-07-2002) 
 
	
          | |  | Kommentar Fra : Jens Vestergaard
 | 
 Dato :  24-07-02 07:50
 | 
 |  | 
 
            "Tomas Christiansen" <toc@blikroer.removethis.dk> skrev i en meddelelse
 news:ahkhlo$15ik$1@news.cybercity.dk...
 > Hvis du ikke vil rode med clip-boardet med det samme, så start med at
 > lave et program med en textbox, hvor du kan paste din select ind i.
 >
 Njae, nu har jeg 'rodet' med clipboard (og meget andet godt) siden VB2, så
 den del går nu nok..    Spørgsmålet er nok snarere, om det kan svare sig tidsmæssigt at lave et
 hjælpe-program til sorteringen i forhold til at gøre det manuelt. Der skal
 jo bl.a. ikke bare sorteres på 'linier', men på hele blokke af stærkt
 varierende linie-antal.
 Men det er da hyggeligt, at der rent faktisk er flere, der går ind på
 tankegangen.
 --
 mvh
 Jens Vestergaard
www.railsoft.dk --------
 Indsæt v før snablen
            
             |  |  | 
       Helge Bjørkhaug (24-07-2002) 
 
	
          | |  | Kommentar Fra : Helge Bjørkhaug
 | 
 Dato :  24-07-02 07:55
 | 
 |  | 
 
            On Wed, 24 Jul 2002 08:49:55 +0200, Jens Vestergaard wrote:
 > "Tomas Christiansen" <toc@blikroer.removethis.dk> skrev i en meddelelse
 > news:ahkhlo$15ik$1@news.cybercity.dk...
 >> Hvis du ikke vil rode med clip-boardet med det samme, så start med at
 >> lave et program med en textbox, hvor du kan paste din select ind i.
 >>
 >>
 > Njae, nu har jeg 'rodet' med clipboard (og meget andet godt) siden VB2,
 > så den del går nu nok..    > 
 > Spørgsmålet er nok snarere, om det kan svare sig tidsmæssigt at lave et
 > hjælpe-program til sorteringen i forhold til at gøre det manuelt. Der
 > skal jo bl.a. ikke bare sorteres på 'linier', men på hele blokke af
 > stærkt varierende linie-antal.
 > 
 > Men det er da hyggeligt, at der rent faktisk er flere, der går ind på
 > tankegangen.
 Jeg har en ide i mitt lille hode om hvordan man enklest kan trekke ut
 blokker fra teksten. Det er kjente uttrykk som avgrenser blokkene, og
 array's er en fin ting......
 -- 
 Snutten
 Fjern helge og .invalid før du svarer via mail.
            
             |  |  | 
       Tomas Christiansen (24-07-2002) 
 
	
          | |  | Kommentar Fra : Tomas Christiansen
 | 
 Dato :  24-07-02 22:25
 | 
 |  | Jens Vestergaard skrev:
 > Spørgsmålet er nok snarere, om det kan svare sig tidsmæssigt at lave
 et
 > hjælpe-program til sorteringen i forhold til at gøre det manuelt.
 Der skal
 > jo bl.a. ikke bare sorteres på 'linier', men på hele blokke af
 stærkt
 > varierende linie-antal.
 
 Om det kan svare sig?
 
 Hvis du kun skal bruge programmet én gang, skal det godt nok være en
 stor case-sætning, for at det kan betale sig at lave et program til
 det.
 
 Jeg vil gætte på at det tager mig ca. 1 time at lave et program, som
 kan sortere en case-sætning (hvis det skal have et pænt "finish" og
 selv kommunikere med clipboardet osv., vil der sikkert gå flere
 timer).
 
 Jeg kan formentlig sortere 1 case for hver 6 sekunder.
 
 Hvis det er en engangsfortéelse, skal case-sætningen bestå af mindst
 600 cases før det kan betale sig at lave et program.
 
 -------
 Tomas
 
 
 
 |  |  | 
        Tomas Christiansen (24-07-2002) 
 
	
          | |  | Kommentar Fra : Tomas Christiansen
 | 
 Dato :  24-07-02 23:12
 | 
 |  | Tomas Christiansen skrev:
 > Jeg vil gætte på at det tager mig ca. 1 time at lave et program, som
 > kan sortere en case-sætning
 
 Ja, jeg kunne ikke dy mig, men måtte lige prøve.
 
 Dette lille program forventer at finde INDHOLDET af case-sætningen
 (dvs. UDEN Select Case og End Select linierne) i textbox'en txtInd og
 skriver resultatet i txtUd. Det tog præcis 40 minutter at lave.
 
 Private Sub Form_Load()
 Dim oAlleCases    As Collection
 Dim oEtCase       As Collection
 Dim sTekst        As String
 Dim sLinie        As String
 Dim sNøgle        As String
 Dim lCasePos      As Long
 Dim lKommentarPos As Long
 Dim lLinieNr      As Long
 
 sTekst = txtInd.Text
 Set oAlleCases = New Collection
 Set oEtCase = New Collection
 
 Do While Len(sTekst) > 0
 sLinie = HentLinie(sTekst)
 lCasePos = InStr(1, " " & sLinie, " Case ")
 lKommentarPos = InStr(sLinie, "'")
 If lCasePos > 0 And (lKommentarPos = 0 Or _
 (lKommentarPos > 0 And lCasePos < lKommentarPos)) Then
 If oEtCase.Count > 0 Then
 IndsætCase oAlleCases, oEtCase
 Set oEtCase = New Collection
 End If
 sNøgle = Mid(sLinie, lCasePos + 5)
 oEtCase.Add sNøgle
 Debug.Print sNøgle
 End If
 oEtCase.Add sLinie
 Loop
 
 For Each oEtCase In oAlleCases
 For lLinieNr = 2 To oEtCase.Count
 txtUd.Text = txtUd.Text & oEtCase(lLinieNr) & vbNewLine
 Next
 Next
 End Sub
 
 Function HentLinie(ByRef sTekst As String) As String
 Const sLinieSlut    As String = vbNewLine
 Dim lLinieSlutPos   As Long
 
 lLinieSlutPos = InStr(sTekst, sLinieSlut)
 If lLinieSlutPos > 0 Then
 HentLinie = Left(sTekst, lLinieSlutPos - 1)
 sTekst = Mid(sTekst, lLinieSlutPos + Len(sLinieSlut))
 Else
 HentLinie = sTekst
 sTekst = ""
 End If
 End Function
 
 Sub IndsætCase(ByRef oAlleCases As Collection, ByRef oEtCase As
 Collection)
 Dim oCheckCase    As Collection
 For Each oCheckCase In oAlleCases
 If StrComp(oEtCase(1), oCheckCase(1), vbTextCompare) = -1 Then
 oAlleCases.Add oEtCase, oEtCase(1), oCheckCase(1)
 Exit Sub
 End If
 Next
 oAlleCases.Add oEtCase, oEtCase(1)
 End Sub
 
 -------
 Tomas
 
 
 
 |  |  | 
         Jens Vestergaard (25-07-2002) 
 
	
          | |  | Kommentar Fra : Jens Vestergaard
 | 
 Dato :  25-07-02 08:29
 | 
 |  | 
 
            "Tomas Christiansen" <toc@blikroer.removethis.dk> skrev i en meddelelse
 news:ahn8oj$1oc6$1@news.cybercity.dk...
 > Ja, jeg kunne ikke dy mig, men måtte lige prøve.
 Jamen, er det ikke fremragende!    Så mangler vi bare at få det lavet som en add-in i VBs IDE, så den *løbende*
 sorterer, når der skrives nye Cases ind... - det var egentlig der, vi (jeg)
 begyndte. Men ellers er det da fedt, Tomas.
 Det ser i øvrigt ud til, at det kikser lidt, hvis der er en nestet Select
 Case i en af de ydre cases:
 ....
 Case 2
     Select Case "noget andet"
         Case "ole"
         ...
         ...
     End Select
 Case 3
 ....
 Men det er jo en detalje, som kan rettes.
 --
 mvh
 Jens Vestergaard
www.railsoft.dk --------
 Indsæt v før snablen
            
             |  |  | 
          Tomas Christiansen (25-07-2002) 
 
	
          | |  | Kommentar Fra : Tomas Christiansen
 | 
 Dato :  25-07-02 17:21
 | 
 |  | Jens Vestergaard skrev:
 > Det ser i øvrigt ud til, at det kikser lidt, hvis der er en nestet
 Select
 > Case i en af de ydre cases:
 
 Det er rigtigt.
 Som du sikkert kan se ud af koden, har jeg taget højde for hvis en
 case er kommenteret ud, men jeg har ikke taget højde for "nestede"
 kommentarer, f.eks:
 
 Case "abc"
 'Case "kommentar"" _
 Case "dette er OGSÅ en kommentar"
 Case "dette er IKKE en kommentar"
 
 Desuden bør genkendelsen af strengen efter ordet "Case" ske ved at man
 leder efter de to tilhørende anførselstegn, og at man ignorerer
 dobbelt-anførselstegn.
 
 Ud over det, bør man tage stilling til hvad man skal gøre, hvis der
 ikke findes en streng, men evt. numerisk udtryk, flere strenge (med
 komma imellem) eller udtryk på formen Is > "noget".
 
 Der er sikkert også andre ting, som der bør checkes for.
 
 -------
 Tomas
 
 
 
 |  |  | 
           Jens Vestergaard (25-07-2002) 
 
	
          | |  | Kommentar Fra : Jens Vestergaard
 | 
 Dato :  25-07-02 17:52
 | 
 |  | 
 
            "Tomas Christiansen" <toc@blikroer.removethis.dk> skrev i en meddelelse
 news:ahp8gr$sm9$1@news.cybercity.dk...
 >
 > Der er sikkert også andre ting, som der bør checkes for.
 Nå ja... vis mig en kode, hvor det IKKE er tilfældet..    Men som sagt: udmærket lille ting. Kørte den på en blok med 60 Cases uden
 problemer.
 --
 mvh
 Jens Vestergaard
www.railsoft.dk --------
 Indsæt v før snablen
            
             |  |  | 
            Tomas Christiansen (26-07-2002) 
 
	
          | |  | Kommentar Fra : Tomas Christiansen
 | 
 Dato :  26-07-02 21:51
 | 
 |  | Jens Vestergaard skrev:
 > Men som sagt: udmærket lille ting. Kørte den på en blok med 60 Cases
 uden
 > problemer.
 
 Lagde du forresten mærke til den måde, hvor jeg bruger en collection
 til at sortere i/med?
 
 Det gik nemlig lige pludselig op for mig, at man, når man angiver
 _hvor_ en ny værdi skal sættes ind, ikke kun kan angive et heltal som
 position, men kan angive en eksisterende _nøgle_-værdi, som det nye
 skal indsættes før eller efter. Problemet er blot at man ikke, i en
 collection, kan udtrække nøgle-værdierne, men er nødt til at gemme den
 selv - sammen med sine data... og det gøres jo lettest i en _ny_
 collection.
 
 Man mangler blot at en collection selv kunne sørge for at holde sig
 sorteret, men det er jo lige det, som man kan forvente med
 MS-produkter: Man mangler altid lige DET, som "alle" en dag står og
 har brug for... suk...
 
 -------
 Tomas
 
 
 
 |  |  | 
  Bjarne Østergård (30-07-2002) 
 
	
          | |  | Kommentar Fra : Bjarne Østergård
 | 
 Dato :  30-07-02 00:12
 | 
 |  | 
 "Jens Vestergaard" <j@railsoft.dk> wrote in message
 news:3d3d1f48$0$13932$edfadb0f@dspool01.news.tele.dk...
 > Hejsa
 >
 > Det er sikkert langt ude, men man ved sq aldrig - der findes jo så meget:
 >
 > Er nogen stødt på en kontrol, en kode-snip, en add-in eller andet godt,
 der
 > er i stand til pr. automatik at alfabetisere/sortere en Select Case-række
 
 Jeg løste engang et lignende problem ved at bruge en liste som buffer og
 sætte dens propperties
 Sorted = True
 
 Så sorterer den fint alle strenge alfabetiske og de er lige til at læse
 igen.
 Eneste ulempe er hvis du har tal,  de sorteres i en mærkelig rækkefølge i en
 listboks ved alfabet sortering.
 
 Du kan også bruge en database til sortering hvis du har store mængder af
 data.
 
 Man kan lave meget avancerede sorteringer med databaser og vb.
 
 MVH
 Bjarne Østergård
 
 
 
 
 
 
 
 
 
 
 
 
 |  |  | 
 |  |