![]() |
Delphi-Version: 6
Teil eines Arrays auslesen
Hallo
ich bin neu hier, habe aber schon 2 Jahre Delphi erfahrung aus der Schule! ich bin momentan an der arbeit und programmiere ein Programm welches mir meine musik ordnet! Dabei bin ich an ein problem gestoßen. ich habe meine Datein, welche ich in einem Array abspeichere. also z.B.: ABBA - Mamma Mia.mp3 (es ist nicht nur ein Titel) sie sind auch nicht mit dem Pfadnamen abgespeichert sondern nur mit Interpret - Titel ich möchte nun nur den Interpreten auslesen, und diesen in eine Listbox eintragen lassen! Quellcode
Code:
das array
var i:integer;
begin for i := 0 to 1000 do begin listbox1.Items.Add(songs[i]); end; end;
Code:
ich hoffe ihr könnt mir weiter helfen!
songs: array [1..1000]of string;
mfg Florian |
AW: Teil eines Arrays auslesen
Erstens: Du greifst in der Schleife auf songs[0] zu, obwohl songs erst bei 1 beginnt.
Zweitens: Wo genau ist jetzt das Problem? :glaskugel: |
AW: Teil eines Arrays auslesen
wenn ich aber bei songs[1] zugreif, dann steht der erste dateiname nicht in der listbox!
und mein problem ist ich bekomm so wenn ich das so wie bis jetzt ausgeben lasse ABBA - Mamma Mia ich möchte aber das er mir nur noch ABBA ausgibt. also alles was für dem - steht... das is mein momentan großes Problem |
AW: Teil eines Arrays auslesen
|
AW: Teil eines Arrays auslesen
Zitat:
Delphi-Quellcode:
wohl nicht :wink:
songs: array [1..1000]of string;
|
AW: Teil eines Arrays auslesen
Zitat:
ich steh mit dem problem leider voll auf der leitung |
AW: Teil eines Arrays auslesen
Delphi-Quellcode:
Stimmt das Ergebnis so?
const WholeFilename = 'ABBA - Mamma Mia.mp3';
Interpret := Copy(WholeFilename,1,Pos(' -',WholeFilename) - 1); |
AW: Teil eines Arrays auslesen
Per Pos ermittelst du die Position eines beliebigen Zeichens/Substrings in einem beliebigen String:
Pos( 'a', 'cdab' ) liefert dir den Wert 3 zurück. Per Copy kopierst du vom String, ab der Stelle x, n Zeichen: Copy( 'Hilfe lesen!', 6, 5 ) liefert dir 'lesen' zurück! Was DU nun machen musst, ist, dass du die Position von '-' ermittelst und alle Zeichen ab der Stelle 1 bis zu dieser Position kopierst und diesen kopierten String (Interpret) ausgibst. Das sollte als Hilfestellung reichen! |
AW: Teil eines Arrays auslesen
@ DeddyH
WoW ich bin echt beeindruckt ja das stimmt!!! Dankeschön! damit is mir echt sehr weitergeholfen. wenn ich das dann für das gesamte array durchlaufen lasse einfach mit na for schleife oder? und dann in ein 2tes array neu abspeichern! das wär mir als ersters eingefallen @ aphton ja mit den pos zeilen is nur das problem ads ja jeder interpret, bzw titel unterschiedlich lang sind |
AW: Teil eines Arrays auslesen
Statt des Arrays kannst Du doch gleich eine TStringlist nehmen, das ist bedeutend einfacher und dynamischer. Und wie bereits gesagt: ich würde die Struktur überdenken und statt einem einfachen String einen Record oder gleich eine Klasse verwenden.
|
AW: Teil eines Arrays auslesen
ok stimmt das kann ich machen!
Ich danke für die schnelle und supa antwort! |
AW: Teil eines Arrays auslesen
Zitat:
Delphi-Quellcode:
Edit:
var i:integer;
begin for i := 0 to 1000 do listbox1.Items.Add( Copy( songs[i], 1, Pos( ' -', songs[i] ) ) ); end; Du wolltest die dir gegebenen Informationen nicht aufwerten und bist einfach mit der Lösung konform gegangen -.-' |
AW: Teil eines Arrays auslesen
Man kann durch die Brust ins Auge kommen oder einfach den richtigen Weg einschlagen.
Hier im Forum schwirrt eine Unit für mp3 Dateien rum um die Informationen zu Interpret etc aus selbigen herauszulesen. |
AW: Teil eines Arrays auslesen
Wird ihm nicht viel nutzen wenn er sich seine mp3 selber erstellt!
Nur gekaufte haben diese Daten drin. Gruss alfold |
AW: Teil eines Arrays auslesen
Zitat:
Falls du das echt ernst meinen solltest ... nee, das muss ein Scherz sein |
AW: Teil eines Arrays auslesen
also ich bin mit der lösung weitergekommen! und es funktioniert auch für das was ich will.
und nur mal so nebenbei man kann in jede mp3 datei interpret und titel und alles was man will schreiben, id3-tagit := |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz