vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 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: Liste der Kombinationen zu einem Wertearray 
Autor: Manfred X
Datum: 23.02.15 10:09

Das ist allgemein gehaltener Demo-Code, dem man ein Wertearray
übergibt (values) und der alle Kombinationen von kstart bis kend
in die als Parameter gegebene Datei schreibt.

Für Deine Zwecke (Häufigkeit in Gruppen) muß eine Routine angepaßt werden.
Function NueberK_Output(values() As Integer, k%, kanal_out As Integer) As _
  Boolean
 
     'Liste aller Kombinationen der Werte in Values
 
     'values: null-basiertes Array mit Werteliste n = ubound(values)+1)
     'k: Anzahl der Werte in einer Kombination
     'Ausgabe in den Output_kanal
 
     On Error GoTo fehler
     NueberK_Output = False
 
     Dim indices%()
     ReDim indices%(k - 1)
     indices(0) = -1
 
     Dim anz&
     anz = CLng(NueberK(UBound(values) + 1, k))
     If anz = -1 Then Exit Function
 
     ReDim kombi(k - 1) As Integer
 
     Dim i&, j%, l%, freq&
 
     For i = 1 To anz
        NextIndex indices, UBound(values) + 1
 
        'aktuelle Kombination aus Indices ermitteln
        For j = 0 To UBound(kombi)
            kombi(j) = values(indices(j))
        Next j
 
        'Häufigkeit dieser Kombi in den Gruppen zählen
        freq = 0
        'Schleife über Wertelisten in den Gruppen
        'Array: Kombis enthält Gruppen
        For j = 1 To UBound(kombis)
            If ContainsAll(kombis(j).V1, kombi) Then freq = freq + 1
        Next j
 
        If freq > 0 Then
           'Kombination und Häufigkeit ausgeben
           For j = 0 To k - 1
              Print #kanal_out, values(indices(j));
           Next j
 
           Print #kanal_out, "  F = " & CStr(freq)
        End If
     Next i
 
     NueberK_Output = True
     Exit Function
 
fehler:
 
End Function
 
 
Private Function ContainsAll(total() As Integer, kombi() As Integer) As Boolean
 
    'Sind alle Kombi-Werte in Total enthalten ?
 
    ContainsAll = False
 
    Dim i%, k%, found As Boolean
 
    For k = 0 To UBound(kombi)
       found = False
       For i = 1 To UBound(total)
          If total(i) = kombi(k) Then found = True: Exit For
       Next i
       If Not found Then Exit Function
    Next k
 
    ContainsAll = True
End Function
Der Code in der Hauptroutine "Form_Load" sieht dann so aus:
   'Typen-Deklarationen wie bisher 
 
   'Daten-Liste lesen (wie bisher)
   ReadLines "C:\Daten\input.txt"
 
   'Liste der Gruppen erstellen (incl. Wertearray für jede Gruppe)
   'wie bisher 
   SetLinesToKombis
 
   Dim fn$: fn = "C:\daten\output_neu.txt"
 
   'Werteliste erstellen (1-104, nullbasiert)
   Dim values%(103), i%
   For i = 0 To 103
       values(i) = i + 1
   Next i
 
   '2er bis 4er Kombis durchgehen und Häufigkeit ausgeben
   Wertekombinationen_ausgeben fn, values, 2, 4
 
   'bisheriger rest entfällt


Beitrag wurde zuletzt am 23.02.15 um 10:10:08 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
2er-Kombinationen bilden VBA4.151JBL16.02.15 19:11
Re: 2er-Kombinationen bilden VBA (1.Teil)2.845Manfred X17.02.15 06:33
Re: 2er-Kombinationen bilden VBA (1.Teil)3.082JBL21.02.15 13:35
Re: 2er-Kombinationen bilden VBA (1.Teil)2.833Manfred X21.02.15 14:43
Re: 2er-Kombinationen bilden VBA (1.Teil)2.795JBL22.02.15 08:17
Re: 2er-Kombinationen bilden VBA (1.Teil)2.872Manfred X22.02.15 08:30
Re: 2er-Kombinationen bilden VBA (1.Teil)2.886JBL22.02.15 10:18
Liste der Kombinationen zu einem Wertearray3.066Manfred X23.02.15 06:37
Re: Liste der Kombinationen zu einem Wertearray2.996JBL23.02.15 09:53
Re: Liste der Kombinationen zu einem Wertearray2.900Manfred X23.02.15 10:09
Re: Liste der Kombinationen zu einem Wertearray2.893JBL23.02.15 12:06
Re: Liste der Kombinationen zu einem Wertearray2.795Manfred X23.02.15 12:21
Re: Liste der Kombinationen zu einem Wertearray3.046JBL23.02.15 12:46
Re: Liste der Kombinationen zu einem Wertearray2.903Manfred X23.02.15 12:51
Re: Liste der Kombinationen zu einem Wertearray3.015JBL23.02.15 13:13
Re: Liste der Kombinationen zu einem Wertearray2.875Manfred X23.02.15 13:30
Re: Liste der Kombinationen zu einem Wertearray2.936JBL23.02.15 14:13
Re: Liste der Kombinationen zu einem Wertearray2.746Manfred X23.02.15 14:21
Re: Liste der Kombinationen zu einem Wertearray2.862JBL23.02.15 16:32
Meinen Beitrag vielleicht überlesen2.820Blackbox23.02.15 21:26
Re: Meinen Beitrag vielleicht überlesen2.865JBL23.02.15 21:58
Re: Meinen Beitrag vielleicht überlesen2.801Franki24.02.15 07:14
Kombinationen als CSV-Sätze2.835Manfred X24.02.15 07:47
Re: Kombinationen als CSV-Sätze2.830JBL24.02.15 07:57
Re: Kombinationen als CSV-Sätze2.899Manfred X24.02.15 08:14
Re: 2er-Kombinationen bilden VBA (2.Teil)3.008Manfred X17.02.15 06:35
Re: 2er-Kombinationen bilden VBA2.781JBL17.02.15 07:22
Re: 2er-Kombinationen bilden VBA2.853Manfred X17.02.15 07:26
Re: 2er-Kombinationen bilden VBA2.874JBL17.02.15 07:45
Re: 2er-Kombinationen bilden VBA3.115Manfred X17.02.15 07:53
Re: 2er-Kombinationen bilden VBA2.798JBL17.02.15 08:04
Re: 2er-Kombinationen bilden VBA2.938Manfred X17.02.15 08:12
Re: 2er-Kombinationen bilden VBA2.854JBL19.02.15 07:20
Re: 2er-Kombinationen bilden VBA2.815Manfred X19.02.15 11:39
Re: 2er-Kombinationen bilden VBA2.934JBL19.02.15 11:56
Re: 2er-Kombinationen bilden VBA2.800Manfred X19.02.15 12:11
Re: 2er-Kombinationen bilden VBA2.812JBL19.02.15 12:45
Re: 2er-Kombinationen bilden VBA2.852Manfred X19.02.15 13:03
Re: 2er-Kombinationen bilden VBA2.897JBL19.02.15 13:31
Re: 2er-Kombinationen bilden VBA2.806Manfred X19.02.15 13:47
Re: 2er-Kombinationen bilden VBA2.814JBL19.02.15 14:38
Re: 2er-Kombinationen bilden VBA2.862Franki20.02.15 09:00
Re: 2er-Kombinationen bilden VBA2.877JBL20.02.15 09:31
Einspruch, Text Dateien sind sehr schnell3.082Blackbox19.02.15 18:14
CSV-Dateien sind meist keine echte Alternative2.983Manfred 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