ext. Programme starten (VLC)

Für Fragen von Einsteigern und Programmieranfängern...
wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: ext. Programme starten (VLC)

Beitrag von wp_xyz »

Oh, da brauche ich ja Indy... Zum Glück ging das mit OPM einfach zu installieren. Nun stehe ich vor dem Problem wie ich das Programm anwende, um den Fehler zu sehen. Ich helfe ja gerne, aber ich habe keine rechte Lust, ein fremdes Programm so auseinanderzunehmen, um die Problemstelle zu finden...

reiter
Beiträge: 217
Registriert: Sa 18. Nov 2017, 16:58

Re: ext. Programme starten (VLC)

Beitrag von reiter »

Ich habe zum Beispiel ein NAS wo all meine Filme liegen
Dafür ist es auch gedacht um im internen Netzwerk Filme auf den pc zu streamen

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: ext. Programme starten (VLC)

Beitrag von Warf »

wp_xyz hat geschrieben:Zum Glück ging das mit OPM einfach zu installieren..


Hehehe... dann wart mal ab bis du nach indy was neues installieren willst :twisted: Indy muss vor jedem kompilieren von lazarus einmal händisch neu kompiliert werden. Und mit Indy hab ichs auch geschafft den OPM zu zerschießen (sodass der OPM dachte die pakete wären installiert worden, obwohl nur ein teil korrekt installiert wurde. Ich musste dann per hand die OPM dateien löschen damits wieder ging)

Indy ist wie Chemotherapie, funktioniert wenn nix anderes mehr hilft, macht aber im allgemeinen mehr kaputt als es hilft. Ich halte mir mittlerweile eine eigene Lazarus version vor für Indy, damit ich mich nur für projekte bei denen ich das auch wirklich benutze damit rumschlagen muss

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: ext. Programme starten (VLC)

Beitrag von wp_xyz »

Warf hat geschrieben:Hehehe... dann wart mal ab bis du nach indy was neues installieren willst :twisted: Indy muss vor jedem kompilieren von lazarus einmal händisch neu kompiliert werden. Und mit Indy hab ichs auch geschafft den OPM zu zerschießen (sodass der OPM dachte die pakete wären installiert worden, obwohl nur ein teil korrekt installiert wurde. Ich musste dann per hand die OPM dateien löschen damits wieder ging)

Indy ist wie Chemotherapie, funktioniert wenn nix anderes mehr hilft, macht aber im allgemeinen mehr kaputt als es hilft. Ich halte mir mittlerweile eine eigene Lazarus version vor für Indy, damit ich mich nur für projekte bei denen ich das auch wirklich benutze damit rumschlagen muss

Kann ich jetzt nicht nachvollziehen, bisher ging alles glatt, auch das Installieren und Deinstallieren eines weiteren Package. Aber das soll wahrscheinlich nichts heißen. Das Zeug kommt so schnell wie möglich wieder runter.

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: ext. Programme starten (VLC)

Beitrag von pluto »

Oh, da brauche ich ja Indy... Zum Glück ging das mit OPM einfach zu installieren.

Ja, damit ist es einfach, aber dann macht man ein fpc+Lazarus Update mit fpcupdeluxe und schon gibt es massive Probleme beim neu Kompilieren....
Wegen irgendwelcher Fehler.... z.b. Syntax Fehler(was ja eigentlich nicht sein, kann), oder es wird irgendwas nicht gefunden... Hatte ich schon oft z.b. mit den BRA* Komponenten(darum meide ich sie inzwischen auch).
MFG
Michael Springwald

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: ext. Programme starten (VLC)

Beitrag von Warf »

Beim kompilieren von Indy wird irgendeine Art hash gebildet, abhängig von der Lazarus Version/lcl Version oder so (eventuell ist da sogar das Datum drin)
Wird Lazarus neu gebaut, Indy aber nicht (da sich am Indy Source ja nix geändert hat ist das ja auch zu erwarten) wird dieser hash nicht geupdated, stimmt aber nicht mehr mit dem neuen LCL Build überein (der ist ja jetzt anders da sich ja irgendwas geändert hot, sonst würd man ja nicht neukompilieren) und es kracht

Einfacher fix: nachdem es kracht auf installierte packages anzeigen gehen, Indy suchen, neu kompilieren, und dann erst Lazarus neu kompilieren

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: ext. Programme starten (VLC)

Beitrag von af0815 »

Warf hat geschrieben:Indy ist wie Chemotherapie, funktioniert wenn nix anderes mehr hilft, macht aber im allgemeinen mehr kaputt als es hilft. Ich halte mir mittlerweile eine eigene Lazarus version vor für Indy

Kann ich unterschreiben. Bei mir hat es an einer Datei gehangen, die man immer wieder händisch builden musste, nach einem clear Build. Das ist echt öde, wenn das komplette Lazarus rekompilieren wegen so einem Paket abbricht. Vor allen, wenn man DirextX und Indy in einem Projekt benötigt kann es toxisch werden, bis hinunter das der FPC ohne Patch (mit 3.2 behoben) nicht mehr linken kann.

Ich habe mir ein eigens Indy-Paket gebastelt wo nur die Teile drinnen sind die ich für ein anderes Projekt (Modbus Master/Slave) wirklich nur benötige.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

reiter
Beiträge: 217
Registriert: Sa 18. Nov 2017, 16:58

Re: ext. Programme starten (VLC)

Beitrag von reiter »

Guten. Morgen,
Ok gut zu wissen das ich wenn ich mal auf ein neues Lazarus aktualisiere das mit indy im Hinterkopf habe...
Aber hilft mir momentan auch nicht weiter mit der Listbox und einlesen der Liste ..

Wie kann ich den die Einträge der Reihe nach einlesen in die Listbox...?
Das was ich gefunden habe ist

Code: Alles auswählen

idftp1.List(listbox1.items.add(´*.tsˋ,false));


Da muss ich aber jede Zeile eingeben , was ich aber nicht weiß Wieviele Zeilen in der Liste sind, also müsste das dynamisch gehen..
Kann mir da mal einer bitte helfen

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1430
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: ext. Programme starten (VLC)

Beitrag von fliegermichl »

reiter hat geschrieben:Guten. Morgen,
Ok gut zu wissen das ich wenn ich mal auf ein neues Lazarus aktualisiere das mit indy im Hinterkopf habe...
Aber hilft mir momentan auch nicht weiter mit der Listbox und einlesen der Liste ..

Wie kann ich den die Einträge der Reihe nach einlesen in die Listbox...?
Das was ich gefunden habe ist

Code: Alles auswählen

idftp1.List(listbox1.items.add(´*.tsˋ,false));


Da muss ich aber jede Zeile eingeben , was ich aber nicht weiß Wieviele Zeilen in der Liste sind, also müsste das dynamisch gehen..
Kann mir da mal einer bitte helfen


Das verstehe ich nicht so ganz. Hast du in Listbox1 eine Liste von Dateiendungen und die sollen dann eine nach der anderen an idftp1.list übergeben werden?
Wie liefert Tidftp.list die Ergebnisse?

reiter
Beiträge: 217
Registriert: Sa 18. Nov 2017, 16:58

Re: ext. Programme starten (VLC)

Beitrag von reiter »

Ja genauso wie Du es geschrieben hast , soll es von statten gehen, ich wollte auch noch mehr Filter setzten wie *.avi und *.mp4 gleichzeitig mit *.ts ...das geht aber auch nicht .
Das einzigste was ich gefunden hatte zu idftp.List war halt das mit der Listbox.
Das Problem ist halt, sobald ich den Filter raus nehme und die Liste größer wird , das da das einlesen abgeschnitten wird. Wie in dem Foto hier im Thread schon gepostet auf der ersten Seite . Das das einlesen irgendwie abgebrochen wird?

Das was ich gefunden habe ist das hier:

https://www.delphi-treff.de/tutorials/n ... et/indy/4/

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: ext. Programme starten (VLC)

Beitrag von wp_xyz »

Die Frage ist also: Wie kann man (mit Indy o.ä.) eine Liste aller *.ts, *.avi,*.mkv, *.mp4-Dateien von einem FTP-Server laden?

reiter
Beiträge: 217
Registriert: Sa 18. Nov 2017, 16:58

Re: ext. Programme starten (VLC)

Beitrag von reiter »

ja genau...

das beste Beispiel war halt dafür genau das..

Aktuellen Server-Verzeichnisinhalt in Listbox anzeigen
Zum Auslesen eines Verzeichnisinhalts wird die Methode List verwendet, die in verschiedenen Varianten existiert. Am flexibelsten ist die Variante ohne Parameter. Anschließend findet man alle Daten in IdFtp1.DirectoryListing. Dabei handelt es sich um eine Liste von TIdFtpListItems, über die man iterieren kann. Jedes Element besitzt z.B. die Eigenschaft FileName, die man in eine ListBox einfügen kann:

var
I: Integer;
begin
ListBox1.Clear;
if IdFTP1.Connected then
begin
IdFTP1.List();
for I := 0 to IdFtp1.DirectoryListing.Count - 1 do
ListBox1.Items.Add(IdFtp1.DirectoryListing.Items[I].FileName);
end;

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1430
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: ext. Programme starten (VLC)

Beitrag von fliegermichl »

Genauso sollte das doch funktionieren.
Nur das du das eben für jede Dateiendung separat aufrufen musst.
Ich gehe hier jetzt mal davon aus, daß es ein Memo gibt in dem pro Zeile eine Dateiendung drinsteht also z.B.
*.ts
*.avi
...

Code: Alles auswählen

 
procedure GetFiles;
var i, e : integer;
begin
 Listbox1.Clear;
 for e := 0 to Memo1.Lines.Count - 1 do
 begin
  idFTP1.List(Memo1.Lines[e], False);
  for i := 0 to idFTP1.DirectoryListing.Count - 1 do
   if IdFTP1.DirectoryListing.Items[i].ItemType = ditFile then
    ListBox1.Items.Add(idFTP1.DirectoryListing[i].FileName);
 end;
end;
 

reiter
Beiträge: 217
Registriert: Sa 18. Nov 2017, 16:58

Re: ext. Programme starten (VLC)

Beitrag von reiter »

Na ob das n Memo ist weiß ich nicht, wird halt vom FTP abgefragt.
Und wo deklariere ich in deinem Beispiel die Endung ?

Vielleicht kann ich die Endungen als Variablen deklarieren und so mit aufrufen
Var
A: *.ts;
B: *.mp4;
C: *.avi;

Usw

Bis jetzt habe ich das nur so abgefragt wie hier..

Code: Alles auswählen

idftp1.List(Listbox1.items '*.ts',fasle);

So funktioniert das auch aber halt nur mit einer Endung , mehrere kann ich da nicht einfügen
Und wenn ich die Endung Weg lasse, (*),false; dann wird die Liste wahrscheinlich so groß das ein timeout kommt und das einlesen abbricht.
Den Timeout habe ich auch schon hoch gesetzt, aber kein Erfolg

Gruß
Reiter

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1430
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: ext. Programme starten (VLC)

Beitrag von fliegermichl »

Ok, ich formuliere es mal um.

Code: Alles auswählen

 
procedure GetFiles;
var i, e : integer;
 Dateiendungen : TStringlist;
begin
 Dateiendungen := TStringlist.Create;
 try
  // Hier befüllen wir die Liste der Dateiendungen mit allen gewünschten Werten
  DateiEndungen.Add('*.ts');
  DateiEndungen.Add('*.avi');
 // usw.
 
  Listbox1.Clear;
  for e := 0 to Dateiendungen.Count - 1 do
  begin
   idFTP1.List(Dateiendungen[e], False);
   for i := 0 to idFTP1.DirectoryListing.Count - 1 do
    if IdFTP1.DirectoryListing.Items[i].ItemType = ditFile then
     ListBox1.Items.Add(idFTP1.DirectoryListing[i].FileName);
  end;
 finally
  Dateiendungen.Free;
 end;
end;
 

Antworten