Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

CuTeX0r

Treue Seele

  • »CuTeX0r« ist der Autor dieses Themas

Beiträge: 174

Wohnort: Deutschland

  • Private Nachricht senden

1

18.07.2004, 20:57

Infos aus String herausfiltern - "template"string

Hi @ll..
also ich hab z.z. n kleines Problemchen.. und zwar:
Ich möchte aus nem Dateinamen eines .mp3 files den Track(Nummer), Album, Titel und Interpret herauslesen.

Angenommen, ein Dateiname sieht so aus:

(07) Oakland Zone: Soul Vaccination - Tower of Power

Es wäre ja nicht schwer, die Sachen da rauszulesen, allerdings möchte ich, dass der Anwender durch eine Zeichenkette festlegen kann, wie ein solcher Dateiname aussieht(praktisch eine Art Template). In diesem Fall:

(Nummer) Album: Titel - Interpret

nur angenommen, der Benutzer gibt stattdessen
Interpret: Nummer Titel(Album)

ein..?! Bin grad total gaga, blicks wirklich nichmehr wie ich da etz am Besten vorgehen soll..

thx schonma für vorschläge / lösung(sansätze / -en ;D )

2

18.07.2004, 21:25

naja das Template speicherst du am besten:

int Stelle[4];

0 steht dann für die erste Information 1 für die zweite usw.
Dann musst du für jede Information eine Funktion haben die genau die ausließt. Dann kannst du anhand der StellenVariablen die Funktionen nacheinander aufreufen und hast das ergebnis.
Man müsste die infos natürlich deutlich trennen können, z. B. mit einem "-" zwischen jeder Info. Dann bracuhst du:

string Info[4];

extrahierst darin die richtigen Teile des Strings und übergibts die dann den Funktionen.
Lieber dumm fragen, als dumm bleiben!

CuTeX0r

Treue Seele

  • »CuTeX0r« ist der Autor dieses Themas

Beiträge: 174

Wohnort: Deutschland

  • Private Nachricht senden

3

19.07.2004, 13:20

hm ich hätte es aber gern etwas freier, sodass man albumtitel und songtitel z.b. durch einen ":" von einander trennen kann:
Oakland Zone: Soul Vaccination

ok, wenn ich immer das gleiche Trennzeichen nehme ist es einfacher, denke dann schaff ichs. Mh mal sehn. Hat noch wer Vorschläge?!

p.s. thx übrigens :) ;)

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

4

19.07.2004, 13:41

evtl. helfen sprintf() bzw. sscanf()...

CuTeX0r

Treue Seele

  • »CuTeX0r« ist der Autor dieses Themas

Beiträge: 174

Wohnort: Deutschland

  • Private Nachricht senden

5

19.07.2004, 14:32

in wiefern!?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

6

19.07.2004, 14:52

naja, damit kannst du dir schön formatierte strings zusammenbasteln bzw. auslesen...

ok sscanf() hilft weniger...

CuTeX0r

Treue Seele

  • »CuTeX0r« ist der Autor dieses Themas

Beiträge: 174

Wohnort: Deutschland

  • Private Nachricht senden

7

19.07.2004, 15:29

also sorry, aber ich glaube du hast wohl meinen ersten post nich so wirklich gelesen.. :rolleyes: :rolleyes:

p.s. zeig mir ma plz, wie ich mit sprintf nen string auslesen soll..?! afaik ist sprintf zum schreiben von daten in einen buffer gedacht..

8

19.07.2004, 17:51

Also ich würde einen Format-String anlegen. Der Feste und Variable Teile besitzt.

Die Festen Teile sind die, die vom System vorgegeben werden. Z.B. Interpret, Song-Nr., Titel, etc. Diese werden in Eckigen Klammern eingerahmt.

Der Rest ist Variabel.

Dein Format String sieht dann z.B. so aus
([TrackNr.]) [Album]: [Interpret] - [Titel]

Nun liest du eine Datei ein, z.B.
(1) Mini: Donald - Mein Donald.mp3

Trennzeichen sind: "(", ")", " ", ": " und " - "
Macht also:
1
Mini
Donald
Mein Donald

Du hast zwei Informationen:
Einmal die Reihenfolge der Informationen und zum zweiten die Trennzeichen die die Informationen trennen.

Was du machen must:
Du must nach den Trennzeichen in dem String deiner Datei suchen.

Und schon haste alle Daten einzeln vorliegen. Sieht nach mehr aufwand aus als es wircklich ist.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

CuTeX0r

Treue Seele

  • »CuTeX0r« ist der Autor dieses Themas

Beiträge: 174

Wohnort: Deutschland

  • Private Nachricht senden

9

19.07.2004, 20:59

ja so in der art bin ich das schon angegangen. Nur wenn ein Element durch das Gleiche Trennzeichen getrennt ist, also z.b.

-Titel-

und das Trennzeiuchen dann nochmal vorkommt führt es zu Problemen. Bin mittlerweile zu dem Schluss gekommen, dass es dann nicht gehen kann, außer nat. ich bin etz zu verwirrt. Auf jedenfall danke für den Post, DragonMast00r ;)

10

19.07.2004, 22:48

Natürlich. Ein festes Trennzeichen macht das ganze sicherlich viel einfacher. Allerdings ist zu beachten das bei meinem Vorschlag die Trennzeichen in gewisser weise auch fest sind. Denn aus der Sicht des Programmes sind sie das.

Du must nur darauf achten das es mehrere Trennzeichen geben kann und das es sich nicht nur um Trennzeichen sondern auch um Trennzeichenketten handeln kann.

Ein Leerer Dateiname würde also so aussehen.
()__-_.mp3

Der Unterstrich symbolisiert ein Leerzeichen.

Ich sehe da auch grad das ich im meinem letzten Post einen kleinen Fehler gemacht habe. Die richtigen Trennzeichenketten lauten:
"(", ")_", ":_", "_-_"
Wobei auch hier der Unterstrich ein Leereichen symbolisiert.
Die Reihenfolge ist eigentlich immer fest.

Trennzeichenkette
Festes Symbol
Trennzeichenkette
Festes Symbol
...
Datei Extenshion

Nach diesem Prinzip must du gehen. Denn unmöglich ist nichts ;) Es ist nur nicht alles schnell Implementiert.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Werbeanzeige