| Autor |
Beitrag |
b-52
Hält's aus hier
Beiträge: 6
Win XP
D6 Pers, D2005 Prof
|
Verfasst: Mi 18.05.05 17:53
Ich versuche schon seit längerer Zeit Dateien nach bestimmten Wörtern zu durchsuchen und dann bestimmte Wörter heraus zu kopieren.
Ein Beispiel:
Eine Datei (sehr, sehr, sehr, groß = 500KB; also zu groß um die Einträge von Hand raus zu kopieren) die immer nach dem selben Schema aufgebaut ist (diesen [Good]-Eintrag gibt es noch ewig oft):
[Good]
nickname = missile01_mark01_rtc
equipment = missile01_mark01_rtc
category = equipment
price = 500
item_icon = equipment\models\commodities\nn_icons\EQUIPICON_missilelauncher.3db
combinable = false
free_ammo = missile01_mark01_rtc_ammo, 10
ids_name = 263146
ids_info = 264146
shop_archetype = equipment\models\weapons\li_rad_launcher.cmp
material_library = equipment\models\li_equip.mat
...
Dort will ich jetzt die Einträge die hinter nickname stehen herauskopieren, wie mache ich das ?
Danke für eure Hilfe !
|
|
Fabian W.
      
Beiträge: 1766
Win 7
D7 PE
|
Verfasst: Mi 18.05.05 19:50
Das sieht einer Inidateui sehr änlich. Wiest du wie man mit dene umgeht?
Könnte sein dass diese Methode hier auch wegen den Leerzeichen vor dem '=' scheitert.
Du könntest aber acu die Datei in ein Memo laden, und dann den Ihalt des Memos mit Pos('nickname',Memo1.text) durchsuchen und die Daten so raus lesen.
Wenn die Leerzeichen nicht da stehen würden, wären Ini's die Lösung.
PS: Dein Name erinnert mich an den Bomber, hat das damit was zu tun?
|
|
Tobias1
      
Beiträge: 454
Win 98, XP Prof
D3 Prof, D2005 Prof
|
Verfasst: Mi 18.05.05 20:19
Die Leerzeichen machen, soviel ich weiß, keine Probleme.
_________________ Auch das schlechteste Buch hat seine gute Seite: die letzte. (John Osborne)
|
|
Tobias1
      
Beiträge: 454
Win 98, XP Prof
D3 Prof, D2005 Prof
|
Verfasst: Mi 18.05.05 20:33
Du brauchst zwei Memos
Memo1=Eingabe
Memo2=Ausgabe
Dann setze das z.B bei einem Buttonklick ein
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| var a:integer; begin for a:=0 to memo1.lines.count-1 do if pos('nickname',memo1.lines.strings[a]) = 1 then memo2.Lines.Add(copy(memo1.lines.strings[a],12,length(memo1.lines.strings[a])-8)); end; |
_________________ Auch das schlechteste Buch hat seine gute Seite: die letzte. (John Osborne)
|
|
Fabian W.
      
Beiträge: 1766
Win 7
D7 PE
|
Verfasst: Do 19.05.05 08:21
[quote]Die Leerzeichen machen, soviel ich weiß, keine Probleme. [delphi]
Warum machst du's dann nicht mit ini's?
|
|
b-52 
Hält's aus hier
Beiträge: 6
Win XP
D6 Pers, D2005 Prof
|
Verfasst: Do 19.05.05 08:39
Titel: Danke !
Danke Leute ! Ich probier's gleich mal aus.
Fabian W. hat folgendes geschrieben: | | PS: Dein Name erinnert mich an den Bomber, hat das damit was zu tun? |
Jein ! Ich wollre schon vor langer Zeit 'nen g'scheiden nickname bei meinem FreeMail-Anbieter, doch da war nix frei, deßhalb hab ich dann einfach b-52 genommen, weil's 'n guter Flieger ist. Und da ich keine 100.000 unterschiedlichen Nicknames will, nehm ich den halt immer wieder. DAS SOLL JETZT NICHT HEIßEN, DASS ICH EIN KRIEGS-FAN BIN ! KRIEG IST SCH.... !
|
|
b-52 
Hält's aus hier
Beiträge: 6
Win XP
D6 Pers, D2005 Prof
|
Verfasst: Do 19.05.05 09:19
Titel: Es funzt !
Nochmal Danke für eure Hilfe ! Ich hab's jetzt ausprobiert und es funzt PERFEKT !
|
|
Tobias1
      
Beiträge: 454
Win 98, XP Prof
D3 Prof, D2005 Prof
|
Verfasst: Do 19.05.05 10:12
[quote=" Fabian W."] | Zitat: | Die Leerzeichen machen, soviel ich weiß, keine Probleme. [delphi]
Warum machst du's dann nicht mit ini's? |
Ne Ini wär zwar ne ganz elegante Lösung, jedoch wenn es mehrere Sektionen "[Good]" gibt wird wahrscheinlich immer nur die gleiche aufgerufen. 
_________________ Auch das schlechteste Buch hat seine gute Seite: die letzte. (John Osborne)
|
|
Fabian W.
      
Beiträge: 1766
Win 7
D7 PE
|
Verfasst: Do 19.05.05 10:22
Wie wärs wenn man ihn einfach frägt:
@Boing B-52 Stratofortress: Gibt es mehrere Sektionen ([Good]), die den gleichen Namen tragen?
|
|
b-52 
Hält's aus hier
Beiträge: 6
Win XP
D6 Pers, D2005 Prof
|
Verfasst: Do 19.05.05 11:07
Es gibt ca. 1000 [Good]-Sektionen, immer mit dem gleichen Aufbau, nur anderen werten.
|
|
Fabian W.
      
Beiträge: 1766
Win 7
D7 PE
|
Verfasst: Do 19.05.05 15:17
 Und alle Sektionnen in der Datei heißen einfach nur [Good] nicht [Good1], [Good2], ...?
Dann seh ich für ini's nur umständliche Möglichkeiten, kann sein dass es da auch ne Funktion bei den INi's gibt, die das auslesen von derartigen dateien ermöglicht, wäre mir aber nicht bekannt.
|
|
b-52 
Hält's aus hier
Beiträge: 6
Win XP
D6 Pers, D2005 Prof
|
Verfasst: Do 19.05.05 18:27
Alle EInträge sind nach diesem Schema aufgebaut:
[Good]
nickname = *
equipment = *
category = *
price = *
item_icon = *
combinable = *
free_ammo = *
ids_name = *
ids_info = *
shop_archetype = *
material_library = *
[Good]
nickname = *
equipment = *
category = *
price = *
item_icon = *
combinable = *
free_ammo = *
ids_name = *
ids_info = *
shop_archetype = *
material_library = *
[Good]
nickname = *
equipment = *
category = *
price = *
item_icon = *
combinable = *
free_ammo = *
ids_name = *
ids_info = *
shop_archetype = *
material_library = *
...
* Die Werte (Immer unterschiedlich)
|
|
Fabian W.
      
Beiträge: 1766
Win 7
D7 PE
|
Verfasst: Do 19.05.05 19:32
Dann wird's umständlich, bleib bei dem Code von oben.
|
|