Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Lista inte likadana rader i combo

Postades av 2003-07-05 20:05:29 - Göran Hansson, i forum visual basic - allmänt, Tråden har 7 Kommentarer och lästs av 488 personer

Från en textfil listar jag raderna i en combobox, men om någon rad är lika som någon som redan listats så ska denna inte listas!
Förslag på hur jag kan lösa detta?

Början på projektet som inte fungerar:
<code>
Sub Form_Load ()
Dim StrLen As Integer
Dim InString As String
Rad = 0 'Specificera antal rader i filen
Open App.Path & "\textfil.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, InString
InString = Trim(InString) 'Ta bort mellenslag
StrLen = Len(InString) - 2 'Hämta stränglängd minus 2 tecken

If StrLen > 0 Then 'Om strängen har minst ett tecken
If Rad > 0 Then 'Om det INTE är första raden i filen
Antal = 0 'Specificera antal rader i "comboboxen"
Do While Antal <= Rad 'Så länge som comboboxrader är mindre
'eller lika som antal rader i filen
Combo1.ListIndex = Antal 'Visa text i comboboxen
Label2.Caption = Combo1.Text 'som överförs till Label2
If Not Label2.Caption = Left(InString, 4) Then 'Om INTE Label2 = raden i filen
Combo1.AddItem Left(InString, 4) 'Lägg till raden i filen
End If
Antal = Antal + 1 'Öka på antal rader som ska visas i combobox
Loop
Else 'Annars
Combo1.AddItem Left(InString, 4) 'Lägg till första raden från filen
End If
End If
Rad = Rad + 1 'Öka på antal rader från filen
Loop
Close #1
Label1.Caption = Rad 'Skriv ut antal rader från filen som komihåg
End Sub
</code>


Svara

Sv: Lista inte likadana rader i combo

Postades av 2003-07-05 22:58:35 - Oskar Johansson

Kör en loop där du söker igenom varje rad i den och om du hittar något ställe där det är lika så sätter du en boolean-flagga till true...


Svara

Sv: Lista inte likadana rader i combo

Postades av 2003-07-06 03:36:08 - Göran Hansson

Just så är det tänkt att det måste gå till!

Här är ett annan lösning, som inte heller fungerar som jag vill
men det är meningen att programmet ska jämföra text!
<code>
Sub Form_Load ()
Combo1.Clear
Combo2.Clear
Dim Antal As Integer
Dim StrLen As Integer
Dim InString As String
Rad = 0
Open App.Path & "\recept2.txt" For Input As #1 ' Denna första del fyller
Do While Not EOF(1) ' Combo1 med alla rader från filen
Line Input #1, InString
InString = Trim(InString)
StrLen = Len(InString) - 2

If StrLen > 0 Then
Combo1.AddItem Left(InString, 4)
End If
Rad = Rad + 1
Loop
Close #1
Label2.Caption = Rad
Antal = 0

Open App.Path & "\recept2.txt" For Input As #1
Do While Antal < Rad
Combo1.Text = ""
Combo1.ListIndex = Antal
Label3.Caption = Combo1.Text
OK = 1
Antal = Antal + 1 ' Denna andra del tänkte jag skulle
Do While Not EOF(1) ' jämföra en rad från Combo1
Line Input #1, InString ' med alla rader i filen
InString = Trim(InString)
StrLen = Len(InString) - 2

If Left(InString, 4) = Label3.Caption Then OK = 0

Loop
If OK = 1 Then Combo2.AddItem Label3.Caption 'Left(InString, 4)

Loop
Close #1

End Sub

</code>





Svara

Sv: Lista inte likadana rader i combo

Postades av 2003-07-06 09:51:02 - Andreas Hillqvist

Är detta till någon hjälp?
<code>
Private Function Exists(ComboBox As ComboBox, Text As String) As Boolean
Dim Index As Long
For Index = 1 To ComboBox.ListCount - 1
If ComboBox.List(Index) = Text Then
Exists = True
Exit For
End If
Next
End Function

Sub Form_Load()
Dim FileNo As Long
Dim Length As Long
Dim strLine As String

FileNo = FreeFile()
Open App.Path & "\textfil.txt" For Input As #FileNo
Do Until EOF(FileNo)
Line Input #FileNo, strLine
strLine = Left$(strLine, 4)
strLine = Trim$(strLine) 'Ta bort mellenslag
Length = Len(strLine) 'Hämta stränglängd minus 2 tecken
If Length > 0 Then 'Om strängen har minst ett tecken
If Exists(Combo1, strLine) Then
Else
Combo1.AddItem strLine 'Lägg till första raden från filen
End If
End If
Loop
Close #1
Label1.Caption = Combo1.ListCount 'Skriv ut antal rader från filen som komihåg
End Sub

</code>


Svara

Sv: Lista inte likadana rader i combo

Postades av 2003-07-06 11:29:47 - Sven Åke Persson

Du kan kolla mitt uppskick Programarkivet:Ta Bort Dubbletter Ta bort Dubbletter.

Ett tips , gå till Filarean klicka på de flitigaste , klicka på tex Andreas
han har lagt upp en massa Guldexempel,det finns så mycket bra kanonexempel
där om Ni bara söker på rätt ord.


Svara

Sv: Lista inte likadana rader i combo

Postades av 2003-07-06 19:32:09 - Göran Hansson

Andreas!

Ditt exempel fungerade bra, bortsett 2 saker:

I första raden:
Private Function Exists(ComboBox As ComboBox, Text As String) As Boolean
fick jag Error på As Boolean, ändrade detta till As Variant ?

Vidare så, om första raden i den inlästa filen förekom på fler rader så lästes även denna rad in. men bara en gång!


Svara

Sv: Lista inte likadana rader i combo

Postades av 2003-07-06 19:38:57 - Göran Hansson

Jag tror jag fick till det!

Ändrade raden: For Index = 1 To ComboBox.ListCount - 1
Till: For Index = -1 To ComboBox.ListCount - 1

Då dubblerades inte heller första raden

Tackar så mycket för hjälpen

GLAD SOMMAR!


Svara

Sv: Lista inte likadana rader i combo

Postades av 2003-07-07 17:00:41 - Andreas Hillqvist

Opps. Skulle var 0 istället för 1 i for satsen:
<code>
Private Function Exists(ComboBox As ComboBox, Text As String) As Boolean
Dim Index As Long
For Index = 0 To ComboBox.ListCount - 1
If ComboBox.List(Index) = Text Then
Exists = True
Exit For
End If
Next
End Function
</code>


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 166
27 952
271 704
1 960
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies