Autor Beitrag
patrick dee
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 311

Win 98SE, WinXP
D3,D6
BeitragVerfasst: Di 05.06.07 12:30 
Hallo Leute,

Es geht um eine Erstellung einer Playliste. Ich habe eine fertige die immer mit dem Tagesdatum abgespeichert ist z.b. 05-06-07.ac1 Die Einträge sehen in dieser Liste so aus :

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
          12 Uhr
5124-12 SHOUT SHOUT ROCKY SHARPE 02:44
5172-14 IT S SUCH A SMALL WORLD RODNEY CROWELL 03:18
5034-16 DON T DREAM IT S OVER CROWDED HOUSE 03:50
5128-02 EIN ENGEL WOHNT UNTERM DACH HOFFMANN & HOFFMANN 03:33



Wie kann ich nun diese List in die ListBox1 laden, das die Einträge so aussehen :

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
          12 Uhr
5124-12 ROCKY SHARPE          SHOUT SHOUT                  02:44
5172-14 RODNEY CROWELL        IT S SUCH A SMALL            03:18
5034-16 CROWDED HOUSE         DON T DREAM IT S OVER        03:50
5128-02 HOFFMANN & HOFFMANN   EIN ENGEL WOHNT UNTERM DACH  03:33


Wie man sehen kann, steht nach der Nummer der Interpret dann der Titel und die Länge.
Und das mit einem Abstand dazwischen um es besser lesen zu können.

Ich kann die Erstellung der 05-06-07.ac1 Files nicht ändern ist vorgegeben. Habe mir auch schon überlegt das man einen Button einbaut und wenn man auf diesen drückt wird die 05-06-07.ac1 von oben bis unten durchlaufen und jeder Eintrag in eine 2 Liste (StrList)gelegt.Wenn der Eintrag mit einer 5 beginnt soll die Trennung zwischen den Einträgen vorgenommen werden. Als vergleich könnte man in der Datenbank - ist Paradox - nachsehen und Eintragen.Evtl das ganze unter Tagesdatum ( Beispiel 05-06-07.pc1 ) abzuspeichern.

Habe aber auch alle Titel als Musik.Txt gespeichert. Wäre es da einfacher diese nachschau zu machen ? also ich suche wie geschrieben einen Weg dies Trennung durchzuführen.

Hoffe sehr das mir jemand dabei Helfen kann das umzusetzen.

Vielen Dank an alle schon mal im Voraus

Gruß Patrick

_________________
Glauben heißt nichts wissen ...
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Di 05.06.07 13:27 
Ohne Zusatzinformationen wirst du das nicht hinbekommen. Woher soll man denn wissen, welches Leerzeichen den Künstler vom Titel trennt?

Ansonsten: Mit Copy kann man Teile eines Strings in einen neuen kopieren. Wenn die Zeitangaben und die Zahlen am Beginn jeder Zeile immer dieselbe Länge haben, sollte zumindest dieser Teil recht einfach gehen.

_________________
We are, we were and will not be.
patrick dee Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 311

Win 98SE, WinXP
D3,D6
BeitragVerfasst: Di 05.06.07 14:12 
Hei Gausi

Danke erstmal für deine Antwort.
Ja die ersten sieben Zeichen sind immer gleich lang

5100-01
5525-08
5689-09 usw.

LG Patrick

_________________
Glauben heißt nichts wissen ...
jakobwenzel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: Di 05.06.07 14:15 
Es geht darum, z.B. "Shout Shout" von "Rocky Sharpe" zu trennen.
Das Programm kann ja nicht wissen, dass es so heißt und nicht etwa so:
"Shout" von "Shout Rocky Sharpe", oder "Shout Shout Rocky" von "Sharpe".

_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
patrick dee Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 311

Win 98SE, WinXP
D3,D6
BeitragVerfasst: Di 05.06.07 14:16 
NACHTRAG :

In der Musik.txt stehen alle Musiktitel die ich habe so drinnen :
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
5072-17#NICKI#WIE IMMER#04:39#07#00:00#04:33##
5072-18#NICKI#HAST DU HEUTE ZEIT#03:28#07#00:00#03:23##
5072-19#NICKI#GOODBYE JANE#03:20#07#00:00#03:18##
5072-20#NICKI#GANZ TIEF INS HERZ#03:54#12#00:00#03:52##
5072-21#NICKI#HAST A BISSERL ZEIT FÜR MI#04:07#37#00:00#04:01##
5072-22#DRAFI DEUTSCHER#SHAKE HANDS#02:14#05#00:00#02:14##
5073-01#NICKI#NOBODY S PERFECT#03:57#00#00:00#03:51##
5073-02#PATRICK LINDNER#DIE KLEINEN DINGE DES LEBENS#03:20#07#00:00#03:18##
5073-03#ANNIE REISLER#GUARDIAN ANGEL#03:17#08#00:00#03:15##
5073-06#DINO PARISE#BELLA ITALIA {RADIO VERSION)#03:13#00#00:00#03:11##
5073-07#MARK MERRITT#HOME#03:42#15#00:00#03:39##
5073-08#DRAFI DEUTSCHER#WENN MAN LIEBT#03:56#31#00:00#03:55##
5073-09#DRAFI DEUTSCHER#KEEP SMILING#02:08#09#00:00#02:07##
5073-10#DRAFI DEUTSCHER#CINDERELLA BABY#02:23#08#00:00#02:22##
5073-11#DRAFI DEUTSCHER#HEUTE MALE ICH DEIN BILD#02:03#08#00:00#02:02##
5073-12#MAX GREGER JR#YAKETY MAX#03:00#00#00:00#02:59##
5073-13#BRUNNER & BRUNNER#NUR DIE LIEBE UND DER ROCK#03:32#11#00:00#03:30##
5073-14#COSTA CORDALIS#HIMMEL AUF ERDEN#03:53#16#00:00#03:51##
5073-16#LINDA FELLER#ANDERE MÜTTER HABEN AUCH#03:31#08#00:00#03:28##
5073-17#CARRIERE#MICHELLE.#03:48#17#00:00#03:45##
5073-18#HENDRIK BRUCH#SOLANGE ICH NOCH TRÄUMEN#03:26#00#00:00#03:24##
5073-19#BIANCA#KINDER DER STERNE#03:28#11#00:00#03:27##
5073-20#TOM ASTOR#KLEINER REBELL#02:57#05#00:00#02:53##
5073-21#FRANK SCHRÖDER#DU UND ICH IM ALTEN VW POPPEN#03:34#15#00:00#03:32##
5074-01#JULIO IGLESIAS#CON LA MISMA PIEDRA#03:56#24#00:00#03:53##
5074-02#JULIO IGLESIAS#ESA MUJER#04:03#20#00:00#04:00##



Dachte man könnte die 05-06-07.ac1 liste durchsuchen und alle Einträge in die LsitBox2 schreiben. Wenn ein Eintrag mit beginnender 5 vorkommt in die Musik.Txt schauen und übernehmen. Durch die Trennungszeichen wäre es doch möglich die Abstände zu realisieren - ODER ?

lg Patrick

_________________
Glauben heißt nichts wissen ...
patrick dee Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 311

Win 98SE, WinXP
D3,D6
BeitragVerfasst: Mi 06.06.07 12:39 
Hallo Leute,

hat keiner eine Idee für mich wie ich das obige Problem Lösen kann ? :?:

Danke

Patrick

_________________
Glauben heißt nichts wissen ...
Stefan.Buchholtz
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 612

WIN 2000, WIN XP, Mac OS X
D7 Enterprise, XCode, Eclipse, Ruby On Rails
BeitragVerfasst: Mi 06.06.07 13:06 
Anhand des Trennzeichens kannst du natürlich problemlos die Spalten auftrennen. Die Listbox kann aber keine Spalten darstellen und eine Ausrichtung mit Leerzeichen würde nur funktionieren, wenn du einen Zeichensatz mit fester Breite wie Courier New verwendest. Für eine mehrspaltige Darstellung bieten sich TStringGrid oder TListView an.
Zum Aufsplitten der Zeile in die einzelnen Spalten habe ich hier noch eine Utility-Funktion rumfliegen:

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
function SplitFields(const ASource: String;
                     const ADelim: Char): TStringDynArray;
var
  idx     : Integer;
  arrSize : Integer;
  p       : Integer;
  len     : Integer;
begin
  len := Length(ASource);
  p := 1;
  idx := 0;
  arrSize := 10;
  SetLength(Result, arrSize);

  Result[idx] := '';
  while p <= len do
  begin
    if ASource[p] = ADelim then
    begin
      Inc(idx);
      if idx >= arrSize then
      begin
        arrSize := arrSize * 2;
        SetLength(Result, arrSize);
      end{ if }
      Result[idx] := '';
    end { if }
    else
    begin
      Result[idx] := Result[idx] + ASource[p];
    end{ else }
    Inc(p);
  end{ while }
  Inc(idx);
  SetLength(Result, idx);
end{  SplitFields }


Stefan

_________________
Ein Computer ohne Windows ist wie eine Schokoladentorte ohne Senf.