Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten
Autor
Nachricht
Teyhouse_
Poster
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
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
Ü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
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
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
Ü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)
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten

Tags: leerzeichen, ersetzen

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Frage über mein game 237 25.09.2011, 17:33
Keine neuen Beiträge Wie bringe ich mein Programm dazu, auf Return zu reagieren? 620 24.12.2009, 15:42
Keine neuen Beiträge [Umfrage] Multi-tool [By Dylan] - Mit 8 Funktionen schaut rein ! ! ! 772 30.05.2009, 16:11
Keine neuen Beiträge Wie kann ich mich bei euch anmelden?? 916 20.05.2002, 01:28
Keine neuen Beiträge Eine kleine Frage an euch.. 1023 30.09.2007, 09:57
 


[ Time: 0.0662s ][ Queries: 95 (0.0249s) ][ GZIP on - Debug on ]