[ gygy @ 21.11.2004. 20:10 ] @
Code:
...
function izvodjac(Fajl:string):string;
var
  w:string;
begin
  w:='';
  while Pos('-', Fajl) > 0 do
  begin
    w:=w+Copy(Fajl,1,Pos('-',Fajl)-1);
    Delete(Fajl,1,Pos('-',Fajl));
  end;
  result:=w;
end;
...
...
grid.cells[0,grid.RowCount-1]:=izvodjac(s);      //Izvodjac
grid.cells[1,grid.RowCount-1]:=l;                       //Naziv pesme
grid.cells[1,grid.RowCount-1]:=root;                 // Directory.Directory:=root
grid.RowCount:=grid.RowCount+1;                  //Novi red
...


Pravim neki program da iscita svu muziku (mp3) sa HDD-a. E sad problem je sledeci kako da razdvojim Izvodjaca, Naziv pesme i sta raditi ako ima vise "-" u nazivu pesme? Da li je jos neko radio ovako nesto?
Ja sa ovom gore procedurom izdvajama izvodjaca, ali imam problema sa praznim mestom. Koda radi savrseno ako nema razmaka npr. "Benny Benassi-Change Style.Mp3" onda nemam prazno polje, a ako je "Benny Benassi - Change Style.Mp3", onda dobijam sledece "Benny Benassi ", " Change Style" u 1 i 2 kolini. Koristim Stringgrid za prikaz. Kako ovo da resim?
Unapred hvala!
[ BytEfLUSh @ 21.11.2004. 20:14 ] @
Između end; i result:=w; ubaci još jednu liniju:

w:=Trim(w);

Trebalo bi da ukloni one suvišne razmake.
[ gygy @ 28.11.2004. 22:43 ] @
Za izvodjaca sve ferca samo sam ubacio ovo
w:=TrimLeft(w);
w:=TrimRight(w);
Između end; i result:=w;
i radi.
Ali imam problem sad kada imam vise crtica. Zelim da mi prebaci u grid2.
I problem mi je naziv pesme uvek ispred ima prazno mesto (ukoliko ga ima iza "-").
Kako jos ovo da resim?
Hvala
[ bancika @ 28.11.2004. 23:20 ] @
Code:

procedure Ocisti(var s: string);
begin
  s := Trim(s);
  while (Length(s) > 0) and (s[1] = '-') do
    Delete(s, 1, 1);
  while (Length(s) > 0) and (s[Length(s)] = '-') do
    Delete(s, Length(s), 1);
  s := Trim(s);
end;


to ce da ti ocisti string od pocetnih/krajnjih blanko znakova i crtica
[ gygy @ 30.11.2004. 19:42 ] @
Ovaj koda lepo radi ako je naziv pesme "Benny Benassi-Change Style.Mp3" ili pak "Benny Benassi - Change Style.Mp3",
ali ako je na primer "X - Raything - Struya.Mp3" (ima dve ili tri onda bude sledece: u prvoj koloni "X - Raything - Struya.Mp3", u drugoj "X", a u trecoj "Raything - Struya". Tu je problem.
Kako da namestim da mi sa dve (ili vise crtica) prebaci u grid2?
Hvala.
[ Srki_82 @ 30.11.2004. 20:34 ] @
Ispravi me ako gresim tebi treba nesto ovako:

Ulaz: A - B - C - D - E - F - G

Izlaz: Izvodjac = "A - B - C - D - E - F", Pesma = "G"

Tako nesto?
[ bancika @ 01.12.2004. 21:34 ] @
ne moze to tek tako, a ako se zove pesma Soudtrack - X-Files, sta je autor, sta je pesma??
[ Srki_82 @ 01.12.2004. 23:26 ] @
Hehe... tacno :)

Pa... program tesko da moze da pogodi koji je deo izvodjac, a koji pesma... jedino ako nema neku bazu podataka na osnovu koje bi mogao da pokusa da provali sam sve.

Bez toga moze ili da se uzme prva crtica za razdvajanje izvodjaca i naziva pesme ili poslednja ILI da ako se pojavi vise od jedne crtice program pita korisnika koji deo je izvodjac, a koji naziv pesme. Ne mogu se setiti niceg boljeg.
[ bancika @ 02.12.2004. 00:00 ] @
definitivno, suludo je praviti bazu izvodjaca..uvek ce da ostane neki mile iz kupinovicu sto je prepevao "i tebe sam sit kafano" :)
sa druge strane ako program nije siguran sta je sta bolje da pita...ako za*ere nesto vise ce trebati vremena coveku da ispravi, ovako mu sibni jedan dijalog sa radio dugmicima i onda da covek izabere, tipa:

* Author: Bla bla Song: bla bla
* Author: AAA Song: BBB
[ Aleksandar Ilić @ 02.12.2004. 11:40 ] @
Ili recimo da se autor i naziv pesme razdvajaju sa " - ", dok crtice u autoru ili u nazivu pesme budu bez razmaka, ovako "-".

"Soundtrack - X-Files"
Autor: Soundtrack
Pesma: X-Files

A funkcija za dobijanje autora iz naziva bi bila nešto kao ovo:
Code:

function Izvodjac(Fajl: String): String;
var
  Autor: String;
  Poz: Integer;
begin
  Poz := Pos(' - ', Fajl);
  Autor := Copy(Fajl, 1, Poz-1);
  Result := Autor;
end;
[ bancika @ 02.12.2004. 13:49 ] @
ok je to, samo sto niko ne moze da ti garantuje da ce tako da bude napisano :)
[ Srki_82 @ 02.12.2004. 15:37 ] @
Potpuno se slazem sa bancikom. Iskoci dialog sa ponudjenim "resenjima" i jedan edit ako ti se ni jedno resenje ne svidja da upises svoje. Setite se da cak i Outlook kad ne moze da provali sta je ime, sta prezime, sta nadimak otvori dialog da mu malo pojasnis stvari ;)