Ergebnis 1 bis 6 von 6
  1. #1
    Trojaner
    Registriert seit
    31.12.2008
    Beiträge
    60

    Standard 1561 dateien vergleichen und doppelte ZEILEN löschen

    aloa freunde des gepflegten codens :lol

    ich brauche mal wieder einen denkanstoß

    Ramenbedingungen

    arbeitszeit des prozesses uninteresannt ( wenn es 3 wochen dauert das abzuarbeiten ist egal ! )

    Sprache : vb.net 2008 da restcode schon vorhanden zuer weiterverarbeitung

    Quelle : textdateien auf ext platte H: ( alle ca 17MB - 53,0 MB )
    anzahl : @ moment 1561st mit 76,283,897 MB ( kein witz )

    ------------------

    so frage 1 : mit welchem suchmuster prüfe ich effektiver ZEILEN ( es wird festgelegt

    1 string datei1.txt (davon) 1.zeile (vergleichen mit) 1string datei2.txt (davon) 1.zeile

    oder

    1 string datei1.txt (davon) rnd zeile (vergleichen mit) 1string datei2.txt (davon) rnd zeile von datei1.txt

    oder

    ?????????????? lasst euch aus

    ------------------

    frage 2 :

    das gleiche spiel nun auch bei dateien machen oder ne andere vergleichart

    bitte beachten : es "KÖNNEN" andere zeilen vorhanden sein

    ------------------

    frage 3 :

    MySQL Version 3.22 hatte eine Begrenzung auf 4 Gbyte bei der Tabellengröße. Mit der Speicher-Engine MyISAM in MySQL Version 3.23 wurde die maximale Tabellengröße auf 65.536 Terabyte (2567 – 1 Byte) erhöht. Das bedeutet, dass die maximale effektive Tabellengröße von MySQL-Datenbanken normalerweise durch Beschränkungen des Betriebssystems hinsichtlich Dateigrößen festgelegt ist, nicht durch MySQL-interne Grenzen.

    hmmmm :twisted noch ne idee

    ----------------

    vielleicht kommt noch was nach

    danke schonmal vorab
    Geändert von Schlumpf2009 (21.04.2010 um 20:49 Uhr)

  2. #2
    W32.FunLove Avatar von par0noid
    Registriert seit
    31.05.2007
    Beiträge
    159

    Standard

    76,283,897 GB ? sicher?
    Watt ham die denn all für ne Schriff? Ist ja ekelhaff!

    ts3admin.info

  3. #3
    Trojaner
    Registriert seit
    31.12.2008
    Beiträge
    60

  4. #4
    It's Toasted!!
    Registriert seit
    08.08.2007
    Beiträge
    375

    Standard

    Frage 1: Natürlich ersteres. Mit einem Zufallswert suchst du "Auf gut Glück". Da kannst du es auch direkt sein lassen.

    Frage 2: Wenn ich dich richtig verstehe, dann musst du eine 4-fach verschachtelte For-Schleife nutzen. Du musst jede Datei mit jeder Datei (außer sich selbst) vergleichen und dann jede Zeile in dieser mit jeder anderen Zeile vergleichen. Würde etwa so aussehen:

    Code:
    For i = 0 To AnzahlDateien
    For j = 0 To AnzahlDateien
    If Not i = j Then
    For k = 0 To AnzahlZeilen(Datei(i))
    For l = 0 To AnzahlZeilen(Datei(j))
    'Vergleichen
    Next l
    Next k
    End If
    Next j
    Next i
    Denk dran, dass die Dauer des Algos quadratisch mit der Anzahl der Dateien steigt. Also bei so vielen und vor allem großen Textdateien wirst du ewig brauchen.
    Geändert von Toastbrot (21.04.2010 um 20:40 Uhr)

  5. #5
    geh wäääg. Avatar von XenoN
    Registriert seit
    11.09.2008
    Beiträge
    119

    Standard

    ja das sind knapp 80 gb... du hast es aber so aufgeschrieben das es 80 terrabyte sind deswegen hatte er nachgefragt

    mfg

  6. #6
    Trojaner
    Registriert seit
    31.12.2008
    Beiträge
    60

    Standard

    Zitat Zitat von XenoN Beitrag anzeigen
    ja das sind knapp 80 gb... du hast es aber so aufgeschrieben das es 80 terrabyte sind deswegen hatte er nachgefragt

    mfg
    ups sry editiert



    jop nur das kommt ja nachher noch obendrauf :o

    also hier mal n paar sachen die ich grad am testen bin


    Code:
       Private Function ReadLineFromFile(ByVal Filename As String, ByVal Line As Integer) As String
            'dieses kleine liest eine definierte zeile aus einer datei ein und gibt sie an die funktion zurück
            Try
                Dim Textfile As TextReader = New StreamReader(Filename)
                Dim cnt As Integer = 0
                Do Until cnt = Line
                    Textfile.ReadLine()
                    cnt += 1
                Loop
                ReadLineFromFile = Textfile.ReadLine()
                Textfile.Close()
    
            Catch ex As Exception
                ende = True
            End Try
        End Function
    Code:
    Function zeilenzahl(ByVal pfad As String) As String
            'Hinweis: Zaehlung beginnt bei 0. Erste Zeile = 0, zweite Zeile = 1 usw.
    
            Dim Path As String = pfad
            ' String Varianle für die spätere aufnahme deiner Zeile
            Dim MeineZeile As String = Nothing
            ' Zufallsgenerator
            Dim Zufall As New Random
            ' Deine TextDatei in ein Arry einlesen
            Dim lines() As String = IO.File.ReadAllLines(Path)
            ' Die Menge der Zeilen aus der TextDatei ermitteln
            Dim Menge As Integer = lines.Count
            'MsgBox(Menge)
        End Function
    Code:
      Function stringvergleich(ByVal string1 As String, ByVal string2 As String) As Boolean
            Dim vergleich As String = ""
            'Die Strings sind gleich (Rückgabewert: 0)
            '(false = groß/klein sind unterschiedlich )
            '(true = groß/klein sind egal )
            vergleich = String.Compare(string1, string2, False)
            If vergleich = 0 Then
                Return True
            Else
                Return False
            End If
        End Function

    also isses am besten datei 1 mit allen vergleichen dann datei 2 mit allen außer 1&2
    Geändert von Schlumpf2009 (21.04.2010 um 20:52 Uhr)

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •