vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Re: 2er-Kombinationen bilden VBA (1.Teil) 
Autor: Manfred X
Datum: 17.02.15 06:33

Hallo!

Die Aussage "Ich bekomme das einfach nicht hin" beschreibt
keine konkrete Fragestellung zu VB.
Man müßte wissen, wie Du vorgegangen bist und an welchem Punkt Du hängst.

Die Fragestellung ist auch nicht völlig klar.
Können negative Werte auftreten?
Können Werte innerhalb einer Gruppe mehrfach vorkommen?
Können die Ausgangsdaten in der Datei als irgendwie vorsortiert angenommen werden?

Vielleicht helfen diese Routinen weiter (1. Teil einer Form)
Option Explicit
 
Private Type Line
    Group As Integer
    Value As Integer
End Type
 
Private Type Kombi
    Group As Integer
    V1() As Integer
    V2() As Integer
End Type
 
Private Type Freq
    V1 As Integer
    V2 As Integer
    groups() As Integer
End Type
 
 
Dim Lines() As Line, kombis() As Kombi, Freqs() As Freq
 
 
Private Sub Form_Load()
 
   'Daten-Liste lesen
   ReadLines "C:\Daten\input.txt" 'Datei angeben
 
   'Liste der Gruppen erstellen (incl. Wertearray für jede Gruppe)
   SetLinesToKombis
 
   'Liste der Werte-Kombinationen bei jeder Gruppe (Gruppe -> Kombis)
   SetKombisInGroups
 
   'Liste Umsetzen: Gruppe -> Kombis nach Kombi -> Gruppen
   FillKombiGroupsList
 
   'Sortieren der Werte-Kominationen nach Anzahl Gruppen pro Kombi. / fallend
   SortKombiGroupsList
 
   'Liste ausgeben
   WriteKombiGroupsList "C:\daten\output.txt" 'Ausgabedatei angeben
 
End Sub
 
 
Sub ReadLines(file_in As String)
 
    Dim i&, k&, ln$, f$()
    Open file_in For Input As #1
 
    While Not EOF(1)
        i = i + 1
        Line Input #1, ln
    Wend
    Close #1
 
    ReDim Lines(i)
    i = 0
    Open file_in For Input As #1
    While Not EOF(1)
        i = i + 1
        Input #1, ln
        f = Split(ln, Chr(9)) '?????? Tab
        'Oder:
        ln = Replace(ln, "  ", " ")
        f = Split(ln, " ")
        Lines(i).Group = CInt(Trim(f(0)))
        Lines(i).Value = CInt(Trim(f(1)))
    Wend
    Close #1
End Sub
 
 
Sub SetLinesToKombis()
 
    Dim i&, k&, l&, foundg As Boolean, foundv As Boolean
    ReDim kombis(0)
 
    For i = 1 To UBound(Lines)
 
        'Gruppe suchen
        foundg = False
        For k = 1 To UBound(kombis)
           foundg = kombis(k).Group = Lines(i).Group
 
           If foundg Then
 
              'Wert in Gruppenliste ergänzen
              With kombis(k)
                foundv = False
                For l = 1 To UBound(.V1)
                   foundv = .V1(l) = Lines(i).Value
                   If foundv Then Exit For
                Next l
                'Wert in Gruppenliste anhängen
                If Not foundv Then
                   l = UBound(.V1) + 1
                   ReDim Preserve .V1(l)
                   .V1(l) = Lines(i).Value
                End If
              End With
              Exit For
 
           End If
 
        Next k
 
        If Not foundg Then
 
           'Gruppe in Gruppenliste anhängen
           l = UBound(kombis) + 1
 
           ReDim Preserve kombis(l)
           With kombis(l)
              'Wertliste für neue Gruppe starten
              .Group = Lines(i).Group
              ReDim Preserve .V1(1)
              .V1(1) = Lines(i).Value
           End With
 
        End If
    Next i
 
End Sub


Beitrag wurde zuletzt am 17.02.15 um 07:02:44 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
2er-Kombinationen bilden VBA4.133JBL16.02.15 19:11
Re: 2er-Kombinationen bilden VBA (1.Teil)2.836Manfred X17.02.15 06:33
Re: 2er-Kombinationen bilden VBA (1.Teil)3.075JBL21.02.15 13:35
Re: 2er-Kombinationen bilden VBA (1.Teil)2.822Manfred X21.02.15 14:43
Re: 2er-Kombinationen bilden VBA (1.Teil)2.780JBL22.02.15 08:17
Re: 2er-Kombinationen bilden VBA (1.Teil)2.862Manfred X22.02.15 08:30
Re: 2er-Kombinationen bilden VBA (1.Teil)2.877JBL22.02.15 10:18
Liste der Kombinationen zu einem Wertearray3.053Manfred X23.02.15 06:37
Re: Liste der Kombinationen zu einem Wertearray2.986JBL23.02.15 09:53
Re: Liste der Kombinationen zu einem Wertearray2.886Manfred X23.02.15 10:09
Re: Liste der Kombinationen zu einem Wertearray2.881JBL23.02.15 12:06
Re: Liste der Kombinationen zu einem Wertearray2.784Manfred X23.02.15 12:21
Re: Liste der Kombinationen zu einem Wertearray3.035JBL23.02.15 12:46
Re: Liste der Kombinationen zu einem Wertearray2.892Manfred X23.02.15 12:51
Re: Liste der Kombinationen zu einem Wertearray2.998JBL23.02.15 13:13
Re: Liste der Kombinationen zu einem Wertearray2.864Manfred X23.02.15 13:30
Re: Liste der Kombinationen zu einem Wertearray2.923JBL23.02.15 14:13
Re: Liste der Kombinationen zu einem Wertearray2.735Manfred X23.02.15 14:21
Re: Liste der Kombinationen zu einem Wertearray2.851JBL23.02.15 16:32
Meinen Beitrag vielleicht überlesen2.810Blackbox23.02.15 21:26
Re: Meinen Beitrag vielleicht überlesen2.858JBL23.02.15 21:58
Re: Meinen Beitrag vielleicht überlesen2.793Franki24.02.15 07:14
Kombinationen als CSV-Sätze2.825Manfred X24.02.15 07:47
Re: Kombinationen als CSV-Sätze2.819JBL24.02.15 07:57
Re: Kombinationen als CSV-Sätze2.887Manfred X24.02.15 08:14
Re: 2er-Kombinationen bilden VBA (2.Teil)3.002Manfred X17.02.15 06:35
Re: 2er-Kombinationen bilden VBA2.775JBL17.02.15 07:22
Re: 2er-Kombinationen bilden VBA2.844Manfred X17.02.15 07:26
Re: 2er-Kombinationen bilden VBA2.864JBL17.02.15 07:45
Re: 2er-Kombinationen bilden VBA3.106Manfred X17.02.15 07:53
Re: 2er-Kombinationen bilden VBA2.792JBL17.02.15 08:04
Re: 2er-Kombinationen bilden VBA2.928Manfred X17.02.15 08:12
Re: 2er-Kombinationen bilden VBA2.848JBL19.02.15 07:20
Re: 2er-Kombinationen bilden VBA2.805Manfred X19.02.15 11:39
Re: 2er-Kombinationen bilden VBA2.923JBL19.02.15 11:56
Re: 2er-Kombinationen bilden VBA2.790Manfred X19.02.15 12:11
Re: 2er-Kombinationen bilden VBA2.805JBL19.02.15 12:45
Re: 2er-Kombinationen bilden VBA2.843Manfred X19.02.15 13:03
Re: 2er-Kombinationen bilden VBA2.887JBL19.02.15 13:31
Re: 2er-Kombinationen bilden VBA2.794Manfred X19.02.15 13:47
Re: 2er-Kombinationen bilden VBA2.807JBL19.02.15 14:38
Re: 2er-Kombinationen bilden VBA2.852Franki20.02.15 09:00
Re: 2er-Kombinationen bilden VBA2.868JBL20.02.15 09:31
Einspruch, Text Dateien sind sehr schnell3.074Blackbox19.02.15 18:14
CSV-Dateien sind meist keine echte Alternative2.971Manfred X19.02.15 18:25

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel