Autor |
Beitrag |
IceBube
      
Beiträge: 231
|
Verfasst: So 22.04.07 16:56
Hallo!
Hab ein kleines Programm geschrieben, mit dem man Liedertexte aus dem Web holen kann, ist nix besonderes, ich dacht mir mal ich zeigs euch.
Man kann den Liedertext, wenn einer gefunden wurde, dann auch auf die Festplatte speichern, und das wars eigentlich schon....
Das Programm legt eine Datei im Programm Verzeichnis an('lied.tmp)....
getestet unter WinXP
lg
|
|
Gausi
      
Beiträge: 8548
Erhaltene Danke: 477
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: So 22.04.07 17:04
Hmmm...das ist so ein Prog, wo ich gerne den Quelltext sehen würde, wie du das machst. Wie suchst du, wo suchst du, und wie filterst du evtl. mehrere Ergebnisse?
Lässt sich das erweitern, dass man evtl. bei einem "falschen Treffer" weiter suchen kann? Oder spezifischer nach Interpret und Titel?
_________________ We are, we were and will not be.
|
|
Fighter#1
      
Beiträge: 787
Win XP, Ubuntu 8.04
Turbo Delphi 2006, Delphi 2005 Pe, Delphi 5 Pe, Netbeans 6.1, Eclipse, Microsoft VisualC#, Dev C++, PHP, HTML, CSS
|
Verfasst: So 22.04.07 17:12
Also an sich find ich das Programm von der Idee nicht schlecht.
Leider find ich fast kein Lied ... einmal hab ich eins gefunden, aber dass war dann nicht das was ich wollte  einmal war ein langer HTML-Text da ... naja, zufriedenstellend ist es jedenfalls noch nicht.
Also ich dachte erst ich müsste oben Interpret angeben, aber dann kommt ja garnix ... und wenn ich nen Titel angeb kommt wiegesagt auch fastnix.
Verfeiner das Programm vll noch einbissel
Auf welcher Seite suchst du denn`?
_________________ Wer andere beherrscht ist stark,
wer sich selbst beherrscht ist mächtig. Lao Tse
|
|
IceBube 
      
Beiträge: 231
|
Verfasst: So 22.04.07 17:16
hallo!
ja, man kann die Funktion noch besser machen, ich hab jetzt schnell mal das Programm geschrieben, in einer halben stunde....es geht leider nicht bei allen Liedertext seiten, aber ich hab eine gefunden da konnte ich liedertexte rausfiltern
Hier der Quelltext >> nix großartiges :=)
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: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99:
| function Convert(Filename:string):string; var IDoc: IHTMLDocument2; Strl: TStringList; sHTMLFile: string; v: Variant; Links: IHTMLElementCollection; i: Integer; Link: IHTMLAnchorElement; begin sHTMLFile := FileName; Strl := TStringList.Create; try Strl.LoadFromFile(sHTMLFile); Idoc := CreateComObject(Class_HTMLDOcument) as IHTMLDocument2; try IDoc.designMode := 'on'; while IDoc.readyState <> 'complete' do Application.ProcessMessages; v := VarArrayCreate([0, 0], VarVariant); v[0] := Strl.Text; IDoc.Write(PSafeArray(System.TVarData(v).VArray)); IDoc.designMode := 'off'; while IDoc.readyState <> 'complete' do Application.ProcessMessages; Form1.Memo1.Lines.Text := IDoc.body.innerText; finally IDoc := nil; end; finally Strl.Free; end; end;
procedure TForm1.Button1Click(Sender: TObject); var a,b,c : integer; begin for a := 0 to Length(Edit1.Text) do begin Edit1.SelStart := a; Edit1.SelLength := 1; if Edit1.SelText = ' ' then Edit1.SelText := '+'; end;
Memo2.Text := http.Get('http://www.i-songtexte.com/index.php?action=search&q=title&string='+Edit1.Text);
for a := 5600 to Length(Memo2.Text) do begin Application.ProcessMessages; Progressbar1.Max := Length(Memo2.Text); PRogressbar1.Position := a;
Memo2.SelStart := a; Memo2.SelLength := Length('href="http://www.i-songtexte.com/');
if Memo2.SelText = 'href="http://www.i-songtexte.com/' then begin
for b := a+Length('href="http://www.i-songtexte.com/') to a+200 do begin Application.ProcessMessages; Progressbar1.Max := a+200; PRogressbar1.Position := b; Memo2.SelStart := b; Memo2.SelLength := Length('">');
if Memo2.SelText = '">' then begin
Memo2.SelStart := a+Length('href="'); MEmo2.SelLength := b-(a+Length('href="'));
try Memo1.Text := http.Get(Memo2.SelTexT); Memo1.Lines.SaveToFile('Lied.tmp'); convert('Lied.tmp'); Memo1.SelStart := Length(Memo1.Text)-634; Memo1.SelLength := 634; Memo1.SelText := ''; except ShowMessage('Keinen Songtext gefunden!'); exit; end; exit; end; end;
end; |
Zu deiner Frage ob man das Erweitern kann...sichA....ich hab aba kein Bock ghabt das zu machen,.....
Die Seite von wo ich die Liedertexte suche ist folgende:
www.i-songtexte.com
lg
|
|
GTA-Place
      

Beiträge: 5248
Erhaltene Danke: 2
WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
|
Verfasst: So 22.04.07 17:28
_________________ "Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
|
|
IceBube 
      
Beiträge: 231
|
Verfasst: So 22.04.07 17:34
ja....ich weiß, wie gesagt hab ich es nur mal so schnell geschrieben,
irgendwie denk ich mir aba, das bringt sich eh nix, wozu braucht man sowas, kann man ja im Internet nachschaun.....
ich weiß nicht, ich bin gerade auf der suche...nach einer IDEE zu einem Programm.
lg
|
|
Gausi
      
Beiträge: 8548
Erhaltene Danke: 477
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: So 22.04.07 17:44
Nun...ich wüsste wozu ich das gebrauchen kann
Hab da so einen Player geschrieben, der eine Funktion "Liedtexte holen" bisher mit Hilfe eines anderen Programms (EvilLyrics) löst. Die Texte werden dann im ID3-Tag gespeichert und können z.B. beim abspielen angezeigt werden. Wenn sich der Code nun erweitern ließe, so dass ggf. auf mehreren Seiten gesucht werden kann, wäre das extrem gut. Dann könnte ich diese Funktion von Haus aus mitliefern, und wäre nicht auf dieses andere Programm angewiesen. Bisher habe ich mich damit aber nicht beschäftigt - daher meine neugierige Nachfrage nach dem Code 
_________________ We are, we were and will not be.
|
|
Timosch
      
Beiträge: 1314
Debian Squeeze, Win 7 Prof.
D7 Pers
|
Verfasst: So 22.04.07 17:48
_________________ If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
|
|
IceBube 
      
Beiträge: 231
|
Verfasst: So 22.04.07 22:19
ja...ich glaub ich werd bei diesem Projekt weiter machen, und mich mehr anstrengen...als vorher...
Bin gerade dabei ein Programm zu machen, das Liedertexte herunterladet und aber auch Biographien und Covers anzeigen kann.
Hab eine Neue Seite gefunden, bei der das herausfiltern der Texte supa einfach ist, geplant ist auch Akkord-Texte herunterzuladen...wenn welche vorhanden sind.
Die Seite ist perfekt, viel mehr Liedertexte und Akkorde.....
Wenn ich es schaff das Programm fertigzustellen, programmier ich vielleicht auch einen Komponenten, @Gausi --> Für deinen Player Nemp wär das eh perfekt!
Hoffe ich bekomm das alles hin...mal schaun, ich denk mir ich brauch für das Programm ne Woche, wenn nicht weniger.....
der Komponent...mal schaun...
lg
|
|
IceBube 
      
Beiträge: 231
|
Verfasst: Mo 23.04.07 18:32
^hab herum probiert und herum probiert komm aba net weiter....ein Versuch was Wert, ich geb auf *schäme mich ;/....
ich such ma liaba ein durchführbares Projekt, bei dem ich weiter komm...
lg
|
|
|