Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Teil eines Arrays auslesen (https://www.delphipraxis.net/157649-teil-eines-arrays-auslesen.html)

HofiderKill 19. Jan 2011 16:28

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:
var i:integer;
begin
for i := 0 to 1000 do
  begin
   listbox1.Items.Add(songs[i]);
  end;

end;
das array
Code:
songs: array [1..1000]of string;
ich hoffe ihr könnt mir weiter helfen!
mfg Florian

Deep-Sea 19. Jan 2011 16:31

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:

HofiderKill 19. Jan 2011 16:34

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

DeddyH 19. Jan 2011 16:35

AW: Teil eines Arrays auslesen
 
Delphi-Referenz durchsuchenCopy und Delphi-Referenz durchsuchenPos könnten Dir weiterhelfen.

[edit] Wobei es allerdings eleganter wäre, die Struktur zu ändern und z.B. einen Record mit 2 Feldern zu verwenden. [/edit]

Deep-Sea 19. Jan 2011 16:36

AW: Teil eines Arrays auslesen
 
Zitat:

Zitat von HofiderKill (Beitrag 1075859)
wenn ich aber bei songs[1] zugreif, dann steht der erste dateiname nicht in der listbox!

Dann stimmt die von dir genannte Definition
Delphi-Quellcode:
songs: array [1..1000]of string;
wohl nicht :wink:

HofiderKill 19. Jan 2011 16:38

AW: Teil eines Arrays auslesen
 
Zitat:

Zitat von Deep-Sea (Beitrag 1075861)

Dann stimmt die von dir genannte Definition
Delphi-Quellcode:
songs: array [1..1000]of string;
wohl nicht :wink:

ok ja das kann sein^^ :oops: mit dem pos und copy befehl komm ich leider auch nicht ganz weiter....
ich steh mit dem problem leider voll auf der leitung

DeddyH 19. Jan 2011 16:40

AW: Teil eines Arrays auslesen
 
Delphi-Quellcode:
const WholeFilename = 'ABBA - Mamma Mia.mp3';
Interpret := Copy(WholeFilename,1,Pos(' -',WholeFilename) - 1);
Stimmt das Ergebnis so?

Aphton 19. Jan 2011 16:44

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!

HofiderKill 19. Jan 2011 16:45

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

DeddyH 19. Jan 2011 16:49

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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:08 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz