Autor Beitrag
b-52
Hält's aus hier
Beiträge: 6

Win XP
D6 Pers, D2005 Prof
BeitragVerfasst: 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.
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1766

Win 7
D7 PE
BeitragVerfasst: Mi 18.05.05 19:50 
:welcome:

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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 454

Win 98, XP Prof
D3 Prof, D2005 Prof
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 454

Win 98, XP Prof
D3 Prof, D2005 Prof
BeitragVerfasst: Mi 18.05.05 20:33 
Du brauchst zwei Memos
Memo1=Eingabe
Memo2=Ausgabe

Dann setze das z.B bei einem Buttonklick ein
ausblenden 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.
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1766

Win 7
D7 PE
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 6

Win XP
D6 Pers, D2005 Prof
BeitragVerfasst: Do 19.05.05 08:39 
Titel: Danke !
Danke Leute ! Ich probier's gleich mal aus.



user profile iconFabian 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 Threadstarter
Hält's aus hier
Beiträge: 6

Win XP
D6 Pers, D2005 Prof
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 454

Win 98, XP Prof
D3 Prof, D2005 Prof
BeitragVerfasst: Do 19.05.05 10:12 
[quote="user profile iconFabian 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. :wink:

_________________
Auch das schlechteste Buch hat seine gute Seite: die letzte. (John Osborne)
Fabian W.
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1766

Win 7
D7 PE
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 6

Win XP
D6 Pers, D2005 Prof
BeitragVerfasst: Do 19.05.05 11:07 
Es gibt ca. 1000 [Good]-Sektionen, immer mit dem gleichen Aufbau, nur anderen werten.
Fabian W.
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1766

Win 7
D7 PE
BeitragVerfasst: Do 19.05.05 15:17 
:shock: 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 Threadstarter
Hält's aus hier
Beiträge: 6

Win XP
D6 Pers, D2005 Prof
BeitragVerfasst: 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.
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1766

Win 7
D7 PE
BeitragVerfasst: Do 19.05.05 19:32 
Dann wird's umständlich, bleib bei dem Code von oben.