|
| Autor |
Nachricht |
Teyhouse_ Poster


Anmeldedatum: 11.02.2007 Beiträge: 100
|
Speziales Textdatei-Lesen
Verfasst am: 06.01.2008, 09:23 |
|
|
Hallo,
ich stehe vor einem echt großen Problem bin quasi am verzweifeln ich schildere euch mal kurz was ich vor habe:
Ich möchte 2 Zeilen aus einer .key Datei in einer anderen Key-Datei ersetzen. Bei der ich nen sie jetzt mal Update.key stehen die neuen 2 Keys drin, in der Main.key sollen sie rein. Problem ist aber das die Main.Key extrem lang ist und die Keys in Zeile 315+116 müssen und noch dazu ohne Leerzeichen mit einem Anhang. Um das ganzem al zu verdeutlichen:
Update.key
CF EA 27 0D AC B9 4A 77 F8 C9 59 D8 1E 75 43 99
F8 E1 4C 62 95 32 79 A4 C3 D8 80 30 5D CC C0 14
Man beachte in der Update.key die Leerzeichen zwischen den beiden Zeilen!
Main.Key (Auszug aus Zeile 315+316)
N 0501 00 C4D01BC5F86BDE771B76444324D5605D ;Con
N 0501 01 774EE95953F8BF2F73B9A2520A2FC09C ;Con
Der 00 und 01 muss durch die beiden oberen Keys ersetzt werden - dabei müssen die Leerzeichen im Key verschwinden und es muss ein ;Con
dahinter gehangen werden!?
Ich hab echt absolut keine Ahnung wie ich das umsetzten soll?
Hoffe auch Hilfe von eurer Seite her.
Mfg.
Teyhouse |
|
| |
|
 |
killer110_ Poster


Anmeldedatum: 16.04.2007 Beiträge: 165
|
Verfasst am: 06.01.2008, 11:44 |
|
|
sind das genau diese codes oder sind das beispiele?
 |
|
| |
|
 |
ZiG_ Überflieger

Anmeldedatum: 07.03.2007 Beiträge: 1248
|
Verfasst am: 06.01.2008, 12:43 |
|
|
Hmm. Bin mir nicht sicher ob ichs ganz verstanden hab.
Aber egal.
Du könntest es evt. so machen.
Main.key zeilenweise in ein Array einlesen. (Falls die Datei nicht allzu groß ist)
Update.key extra einlesen und per "Replace" die Leerzeichen entfernen.
Dann im Array zu den richtigen Zeilen springen und die strings von Update.key an der richtigen Stelle einfügen. Bzw. noch die 00 und 01 vorher entfernen. (Position bleibt ja scheinbar immer gleich)
Dann kannst du das Array einfach wieder speichern. Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde) |
|
| |
|
 |
Teyhouse_ Poster


Anmeldedatum: 11.02.2007 Beiträge: 100
|
Verfasst am: 06.01.2008, 20:21 |
|
|
| Zitat: | | sind das genau diese codes oder sind das beispiele? |
Ja sind es.
@ZIG:
Kenne mich mit Array nicht so ganz aus - könntest du mir da eine Hilfestellung geben? |
|
| |
|
 |
Rausch_ Poster

Anmeldedatum: 03.11.2007 Beiträge: 164
|
Verfasst am: 06.01.2008, 20:31 |
|
|
| Code: | dim zeilen() as string
dim line as integer
line = 1
open "key1.key" for append as #1
do while not EOF(1)
line input #1, zeilen(line)
line = line + 1
loop |
jetzt hast du in zeilen(1) die zeile 1 der key1.key
und in zeilen(2) die 2. zeile usw...
und kannst diese jetzt verändern und dann mit print # in key2.key schreiben
mfg
Zuletzt bearbeitet von Rausch_ am 06.01.2008, 20:45, insgesamt einmal bearbeitet |
|
| |
|
 |
ZiG_ Überflieger

Anmeldedatum: 07.03.2007 Beiträge: 1248
|
Verfasst am: 06.01.2008, 20:39 |
|
|
Ist nicht so schwer. Ist einfach eine Kette von Variablen die du per Index ansprechen kannst.
Ich mach dir mal nen source wie man die Datei einlesen kann. (Tippfehler nicht ausgeschlossen)
| Code: |
Option Base 1 'Dadurch fangen Arrays nicht bei 0 an, sondern bei 1.
Private Sub ... ()
Dim sLines() as string 'Das Array
Dim i as long 'Für die For Schleife
Dim zCount as long 'Zähler für die Zeilen
Dim buffer as string 'Für iwelche Strings
zCount = 0
'Datei öffnen
Open "Pfad zu Datei" for Input as #1
'Zuerstmal sollten wir rausfinden wieviele Zeilen in der Datei sind.
Do Until EOF(1) 'Läuft solange bis das Ende erreicht ist
Line Input #1, buffer
zCount = zCount +1
DoEvents 'besser wäre die Funktion NewDoEvents (Bei den Snippets in der Source section)
loop
'Jetzt wissen wir wieviele Zeilen darin sind. Jetzt können wir das Array dementsprechend dimensionieren. Also die Größe festlegen.
Redim sLines(zCount)
'Und jetzt wollen wir die Datei einlesen.
'Dazu müßen wir den Zeiger in der Datei wieder an den Anfang setzen.
Seek #1, 1 'Setzt den Zeiger an Position 1
'Jetzt die Schleife zum einlesen
For i = 1 to zCount
Line Input #1, sLines(i)
DoEvents 'Durch NewDoEvents ersetzen ;)
next i
end sub
|
In sLines(315) und sLines(316) sind jetzt deine Zeilen gespeichert.
Man könnte das einlesen der Zeilen auch per "Split" schnell in ein Array bringen, aber das führt gerne bei größeren Dateien zu Abstürzen und ist auch nicht so schnell. Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde) |
|
| |
|
 |