WinFuture-Forum.de: Kategorien Sortieren? - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
  • 2 Seiten +
  • 1
  • 2

Kategorien Sortieren?


#1 Mitglied ist offline   Sereby 

  • Gruppe: aktive Mitglieder
  • Beiträge: 262
  • Beigetreten: 22. März 04
  • Reputation: 0

geschrieben 22. September 2005 - 12:59

Hi..

also ich habe hier ne datei mit vielen vielen kategorien die durcheinandergewürfelt sind
beispiel:

[SourceDisksFiles]
SP2QFE\atapi.sys=1

[SourceDisksFiles]
SP2QFE\userenv.dll=1

bloss eben sind dazwischen noch andere kategorien und die kategorie is nich nur 1x da!

wie kann ich aus dieser unstrukturierten datei eine datei machen wo die kategorien nur 1x da sind mit dem ganzen inhalt? also folgendes:

[SourceDisksFiles]
SP2QFE\atapi.sys=1
SP2QFE\userenv.dll=1

wie ist das machbar ;) ?
ich hoffe ihr könnt mir damit helfen

MfG Sereby
0

Anzeige



#2 Mitglied ist offline   tavoc 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.446
  • Beigetreten: 22. Juli 04
  • Reputation: 1
  • Geschlecht:Männlich

geschrieben 22. September 2005 - 13:16

du öffnest die datei und liest alles strings ein (als liste z.b.).

Dann suchst du nach [ ] und deren inhalt, dieser wert wird genommen und im dokument gesucht.
wenn er noch mal auftritt wird er in eine neue liste unter dem ersten geschrieben usw.
Das machst du solange bis alle [] weg sind, am ende musst du nur noch die neue liste abspeichern.
your IP is 127.0.0.1 or ::1
you are running an OS
you use a Browser
I know so much about you...
0

#3 Mitglied ist offline   Sereby 

  • Gruppe: aktive Mitglieder
  • Beiträge: 262
  • Beigetreten: 22. März 04
  • Reputation: 0

geschrieben 22. September 2005 - 13:27

wo (welches tool) und wie mache ich das? das soll am besten alles automatisch geschehen.. sod as ich nur meine .bat datei oder ein tool starten muss

Dieser Beitrag wurde von Sereby bearbeitet: 22. September 2005 - 13:29

0

#4 Mitglied ist offline   [U]nixchecker 

  • Gruppe: aktive Mitglieder
  • Beiträge: 347
  • Beigetreten: 17. Mai 05
  • Reputation: 0
  • Wohnort:Bayern
  • Interessen:Informatik, Linux, Rollerbladen, Bodybuilding, GungFu

geschrieben 22. September 2005 - 15:20

Z.B. mit Perl ginge das super einfach, du nimmst ne HashMap in die sortierst du so ein:

SourceDisksFiles-> SP2QFE\atapi.sys=1, SP2QFE\userenv.dll=1
SomeotherFiles-> asdasDSADS, aDSFDSSADFS

Das schöne an einer Hashmap ist, wenn SourceDisksFiles nicht vorhanden ist, wird der Key angelegt, ist er vorhanden, machst du einfach value + dem neuen String also z.B. SP2QFE\atapi.sys=1 . ";" . SP2QFE\userenv.dll=1

Zum Parsen nimmst du ne RegExpression, die nach *[*]*, jedesmal wenn die RegExpersion zutrifft, fängst du an die nachfolgenden lines in die Hashmap mit dem Key, der in [*] drin ist, zu schreiben.

Danach gehst du einmal die Hashmap durch und schreibst mit foreach alle key values raus, strukturiert sind sie bereits in der Hashmap


Ich würde jetzt mal sagen, das ganze ist in ca 30 geschrieben und gestestet:-)
0

#5 Mitglied ist offline   d00p 

  • Gruppe: aktive Mitglieder
  • Beiträge: 89
  • Beigetreten: 09. Dezember 04
  • Reputation: 0
  • Wohnort:Frankfurt/M
  • Interessen:Programmieren (VB, Java, Delphi, C/C++, C#, PHP & MySQL, NATURAL)

geschrieben 29. September 2005 - 08:45

warum so kompliziert ? Das sieht doch aus, wie ne ini datei,
einfach alles einlesen ( GetPrivateProfileString ) und dann wieder zurückschreiben ( WritePrivateProfileString ) dann müsste alles am richtigen platz sein wenn ich mich nicht irre.

d00p
Eingefügtes Bild
Ihr hättet es wissen müssen, Ihr hättet es wissen müssen -
Steine auf Herz und Seele, uns schießt der Saft in die Tränenkanäle.
Ihr hättet es wissen müssen, lasst euch zum Abschied küssen -
Vom Überall ins Nirgendwo, Geschichten enden nun mal so...
Danke Kevin, Stephan, Gonzo & Pe

"Männer sind wie Lego" [der große Cosmo]
0

#6 Mitglied ist offline   [U]nixchecker 

  • Gruppe: aktive Mitglieder
  • Beiträge: 347
  • Beigetreten: 17. Mai 05
  • Reputation: 0
  • Wohnort:Bayern
  • Interessen:Informatik, Linux, Rollerbladen, Bodybuilding, GungFu

geschrieben 29. September 2005 - 09:02

Wenns ne Ini wäre, dann dürfte sowas nicht vorkommen:

[SourceDisksFiles]
SP2QFE\atapi.sys=1

[SourceDisksFiles]
SP2QFE\userenv.dll=1

und da müsste folgendes sein:

[SourceDisksFiles]
SP2QFE\atapi.sys=1
SP2QFE\userenv.dll=1

und genau das war sein Problem:-)
0

#7 Mitglied ist offline   Sereby 

  • Gruppe: aktive Mitglieder
  • Beiträge: 262
  • Beigetreten: 22. März 04
  • Reputation: 0

geschrieben 29. September 2005 - 09:19

genau das ist mein problem und es ist aufgebaut wie ne .ini
0

#8 Mitglied ist offline   [U]nixchecker 

  • Gruppe: aktive Mitglieder
  • Beiträge: 347
  • Beigetreten: 17. Mai 05
  • Reputation: 0
  • Wohnort:Bayern
  • Interessen:Informatik, Linux, Rollerbladen, Bodybuilding, GungFu

geschrieben 29. September 2005 - 10:21

Mit welcher Programmiersprache möchtest du das eigentlich machen?
0

#9 Mitglied ist offline   d00p 

  • Gruppe: aktive Mitglieder
  • Beiträge: 89
  • Beigetreten: 09. Dezember 04
  • Reputation: 0
  • Wohnort:Frankfurt/M
  • Interessen:Programmieren (VB, Java, Delphi, C/C++, C#, PHP & MySQL, NATURAL)

geschrieben 29. September 2005 - 11:56

naja, klar _müsste_ ne ini sortiert aufgebaut sein, aber trotzdem sollte es mit Einlesen und wieder Reinschreiben dann richtig Kategorisiert sein...
Eingefügtes Bild
Ihr hättet es wissen müssen, Ihr hättet es wissen müssen -
Steine auf Herz und Seele, uns schießt der Saft in die Tränenkanäle.
Ihr hättet es wissen müssen, lasst euch zum Abschied küssen -
Vom Überall ins Nirgendwo, Geschichten enden nun mal so...
Danke Kevin, Stephan, Gonzo & Pe

"Männer sind wie Lego" [der große Cosmo]
0

#10 Mitglied ist offline   Sereby 

  • Gruppe: aktive Mitglieder
  • Beiträge: 262
  • Beigetreten: 22. März 04
  • Reputation: 0

geschrieben 29. September 2005 - 12:05

da ich nich weiss wie das geht, is mir jedes ding recht.. hauptsache ne .exe die das macht.. nich dass ich was zusätzlich installen muss
0

#11 Mitglied ist offline   d00p 

  • Gruppe: aktive Mitglieder
  • Beiträge: 89
  • Beigetreten: 09. Dezember 04
  • Reputation: 0
  • Wohnort:Frankfurt/M
  • Interessen:Programmieren (VB, Java, Delphi, C/C++, C#, PHP & MySQL, NATURAL)

geschrieben 29. September 2005 - 13:35

wennde willst mach ich dir da schnell was...gib mir 15 min

oder auch ein bissy mehr, bin ja noch im Büro ;D

Dieser Beitrag wurde von d00p bearbeitet: 29. September 2005 - 13:55

Eingefügtes Bild
Ihr hättet es wissen müssen, Ihr hättet es wissen müssen -
Steine auf Herz und Seele, uns schießt der Saft in die Tränenkanäle.
Ihr hättet es wissen müssen, lasst euch zum Abschied küssen -
Vom Überall ins Nirgendwo, Geschichten enden nun mal so...
Danke Kevin, Stephan, Gonzo & Pe

"Männer sind wie Lego" [der große Cosmo]
0

#12 Mitglied ist offline   Sereby 

  • Gruppe: aktive Mitglieder
  • Beiträge: 262
  • Beigetreten: 22. März 04
  • Reputation: 0

geschrieben 29. September 2005 - 14:15

ja gerne.. ich freue mich schon drauf!
0

#13 Mitglied ist offline   d00p 

  • Gruppe: aktive Mitglieder
  • Beiträge: 89
  • Beigetreten: 09. Dezember 04
  • Reputation: 0
  • Wohnort:Frankfurt/M
  • Interessen:Programmieren (VB, Java, Delphi, C/C++, C#, PHP & MySQL, NATURAL)

geschrieben 29. September 2005 - 15:00

so, jetzt gehts nach hause, da hab ich zeit dafür ;D
Eingefügtes Bild
Ihr hättet es wissen müssen, Ihr hättet es wissen müssen -
Steine auf Herz und Seele, uns schießt der Saft in die Tränenkanäle.
Ihr hättet es wissen müssen, lasst euch zum Abschied küssen -
Vom Überall ins Nirgendwo, Geschichten enden nun mal so...
Danke Kevin, Stephan, Gonzo & Pe

"Männer sind wie Lego" [der große Cosmo]
0

#14 Mitglied ist offline   d00p 

  • Gruppe: aktive Mitglieder
  • Beiträge: 89
  • Beigetreten: 09. Dezember 04
  • Reputation: 0
  • Wohnort:Frankfurt/M
  • Interessen:Programmieren (VB, Java, Delphi, C/C++, C#, PHP & MySQL, NATURAL)

geschrieben 29. September 2005 - 16:25

Sodele, das war ja nit so schwer.
Erstmal eine gute Nachricht, meine Theorie hat sich bestätigt, danach ist alles sortiert + funktionieren tuts auch.

datei vorher:
[Kat1]
bla=1
blu=2
bli=3
[Kat2]
bla=4
blu=5
[Kat3]
bla=7
blu=8
bli=9
[Kat2]
bli=6

Datei nacher:
[Kat1]
bla=1
blu=2
bli=3
[Kat2]
bla=4
blu=5
bli=6
[Kat3]
bla=7
blu=8
bli=9


Kommentare (mit #) und Leerzeilen werden rausgeparst.

Das programm kriegste hier -> RepairIni.exe

einfach ne cmd aufmachen und
RepairIni C:/Daten/Eingabe.ini C:/Daten/Ausgabe.ini


d00p

Dieser Beitrag wurde von d00p bearbeitet: 29. September 2005 - 16:26

Eingefügtes Bild
Ihr hättet es wissen müssen, Ihr hättet es wissen müssen -
Steine auf Herz und Seele, uns schießt der Saft in die Tränenkanäle.
Ihr hättet es wissen müssen, lasst euch zum Abschied küssen -
Vom Überall ins Nirgendwo, Geschichten enden nun mal so...
Danke Kevin, Stephan, Gonzo & Pe

"Männer sind wie Lego" [der große Cosmo]
0

#15 Mitglied ist offline   Sereby 

  • Gruppe: aktive Mitglieder
  • Beiträge: 262
  • Beigetreten: 22. März 04
  • Reputation: 0

geschrieben 29. September 2005 - 17:03

hm.. also mir scheinen da noch n paar fehler drin zu sein...

1. scheints nur zu gehn wenn das im C:\Daten ordner is!
2. scheint der nur 1x nach der kategorie zu suchen! Denn von 293kb werden 3kb.. das is bissl wenig!
3. nach jeder kategorie eine trennzeile wäre nich schlecht ^^

hoffe du weisst was ich meine und kannst das verbessern
0

Thema verteilen:


  • 2 Seiten +
  • 1
  • 2

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0