Liste mit 15 Millionen Zeilen als TXT erstellen

krischan-tec

Grünschnabel
Ein herzliches Hallo an die Forengemeinde,

ich hoffe ihr könnt mir helfen. Ich benötige eine Liste als TXT-File mit diesem Inhalt:

25.000 01.000
25.000 01.001
25.000 01.002
...
25.000 06.999
25.001 01.000
25.001 01.001
...
28.999 06.999

Also im Prinzip alle Wertepaare von 25.000 01.000 bis 28.999 06.999.
Mein Ansatz ist 01.000 + 0.001 bis 06.999, mit dem Überschlag 25.000 + 0.001 und Spalte 2 wieder bei 01.000 beginnen usw.

Variante 2 und evtl einfacher wäre, die Wertepaare als eine Zahl zu betrachten und einfach eine Liste von
2500001000
2500001001
...
2899906999 zu erzeugen.
Daß dabei Zwischenwerte von zb. 2500099000 entstehen, stört erstmal nicht.
Also "Einfach" 2500001000 + 1 bis 2899906999.
Mit Excel kann ich das leider nicht erschlagen weil die Zeilen einfach nicht ausreichen.
Mit VB hab ich so gut wie keine Erfahrung.

Für Eure Hilfe danke ich schonmal und wünsche wundervolle Weihnachtstage.
Grüße
Krischan
 
Zwei Schleifen mit dem nötigen geöffneten Output. Sorry, ich hab VB schon lang nicht mehr benutzt, aber das sollte ziemlich einfach sein. Ich schreibs mal in Pseudocode hin.

Code:
for a=25000 to 28999
  for b=1000 to 6999
   write format(a)+" "+format(b)
  next
next
Was Du suchen solltest, ist "wie schreibt man eine Zeile in eine Datei" und "wie formatiert man Zahlen"

mfg chmee
 
Ist eigentlich relativ einfach.
Ansatz: Mit ganzen Zahlen lässt es sich einfacher bewerkstelligen.
2 verschachtelte Loops. der erste zählt von 25000 bis 28999, der zweite von 1000 bis 6999.
Für jeden durchgang des ersten Loops wird der 2te Loop durchgeführt.
Darin die Zahlen jeweils durch 1000 teilen und suaber formatiert in die Datei schreiben

Visual Basic:
Public Sub test()
    Dim fso As Object
    Dim stream As Object
    Dim i, j As Long
    
    'Filesystem-Objekt und Outputstream erstellen
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set stream = fso.CreateTextFile("c:\temp\test.txt", True)
    
    '2 verschachtelete Loops um die Werte zu generieren
    'Es sind die gesuchten Werte mal Faktor 1000
    For i = 25000 To 28999
        For j = 1000 To 6999
            'Die Zahlen in durch 1000 teilen und sauber formatieren und in den Stream schreiben
            stream.WriteLine (Format(i / 1000, "00.000") & " " & Format(j / 1000, "00.000"))
        Next j
    Next i
    'Stream schliessen und alles wieder aufräumen.
    stream.Close
    Set stream = Nothing
    Set fso = Nothing

End Sub
 
GIGANTISCH! Das ging mega schnell und funktioniert. Astrein. Hab herzlichsten Dank.

Wünsche allen ein wundervolles Weihnachtsfest und für 2010 alles Gute!
 

Neue Beiträge

Zurück