Musikdateien aus mehreren Unterordnern mit Foobar öffnen

Aktuelle Version: 12.7 (23.11.2017)
Alles zum Thema Directory Opus
Mecum
Beiträge: 101
Registriert: 13. Dez 2008 13:34
Betriebssystem: Windows 7 Pro
Produkt: DOpus 11
Version DOpus: Pro

Musikdateien aus mehreren Unterordnern mit Foobar öffnen

Beitrag von Mecum » 29. Aug 2017 17:31

Hallo,

bei Musikdateien im Genre klassischer Musik kommt es immer wieder vor, dass die Pfadlänge tlw ziemlich lang ist. DOpus kann glücklicherweise mit langen Pfaden ganz gut umgehen, trotzdem funktioniert das einfache Auswählen eines Root-Verzeichnisses nicht aus, um Musikdateien in Unterordnern die einen langen Pfad aufweisen direkt in Foobar per Drag'n'Drop hineinziehen zu können. Drag'n'Drop der Dateien selbst (also nicht der Ordner) klappt dann.

Ich würde also gerne mit einem Schalter sämtliche *FLAC, *MP3 und *CUE Dateien selecten und dann an Foobar schicken. Gibt es dazu eine einfache Möglichkeit? "Select ALLFILES" nimmt ja nur alle Dateien des aktuellen Ordners auf. Gibt es einen Befehl mit dem man auch die Dateien der Unterordner mitnehmen kann? Vielleicht kann man ja auch mit FLATVIEW was hinbekommen.

Bin offen für jeden Vorschlag.
Vielen Dank

Benutzeravatar
tbone
Berater
Beiträge: 404
Registriert: 22. Nov 2014 21:16
Betriebssystem: 7*64
Produkt: aktuelle Beta-Version
Version DOpus: Pro

Re: Musikdateien aus mehreren Unterordnern mit Foobar öffnen

Beitrag von tbone » 29. Aug 2017 17:58

Welche DO Version verwendest Du? (ggfl. gleich mal das Profil updaten? o)

Mecum
Beiträge: 101
Registriert: 13. Dez 2008 13:34
Betriebssystem: Windows 7 Pro
Produkt: DOpus 11
Version DOpus: Pro

Re: Musikdateien aus mehreren Unterordnern mit Foobar öffnen

Beitrag von Mecum » 29. Aug 2017 18:57

Hallo tbone,

wir verwenden familienweit noch immer DOpus 11 :D

Benutzeravatar
tbone
Berater
Beiträge: 404
Registriert: 22. Nov 2014 21:16
Betriebssystem: 7*64
Produkt: aktuelle Beta-Version
Version DOpus: Pro

Re: Musikdateien aus mehreren Unterordnern mit Foobar öffnen

Beitrag von tbone » 30. Aug 2017 17:14

Kann Foobar Playlisten öffnen? Über die Kommandozeile? Ginge notfalls auch ein anderes Tool mit "vernünftiger" CommandLine-Api? o)

Eine Möglichkeit zumindest erstmal alle MP3s und Co aus dem aktuellen Verzeichnisbaum herauszuholen und in eine Textdatei zu schreiben..
sähe so aus:
SelectEx FILES LINEAR PATH={sourcepath$} RECURSE ITEMCOUNTPERC=100 TOFILE="%TEMP%\foobar.m3u" NAME="\.(flac|mp3|cue)$"

Hier wird ein nicht-standard DO-Befehl verwendet -> "SelectEx" - ein ScriptAddin.
Du findest es hier: https://resource.dopus.com/t/command-se ... mand/20517

Guck' Dir vielleicht auch mal diesen Thread an, da haben Kundal und Sasa bereits etwas sehr ähnliches realisiert.
viewtopic.php?f=47&t=5012

Mecum
Beiträge: 101
Registriert: 13. Dez 2008 13:34
Betriebssystem: Windows 7 Pro
Produkt: DOpus 11
Version DOpus: Pro

Re: Musikdateien aus mehreren Unterordnern mit Foobar öffnen

Beitrag von Mecum » 30. Aug 2017 21:14

Foobar hat eine recht gute commandline api http://wiki.hydrogenaud.io/index.php?ti ... line_Guide

Das Erstellen einer separaten m3u würde ich gerne umgehen, es sollte reichen sämtliche ausgewählten Dateien einfach mit Foobar zu öffnen - im Lister auswählen und dann mit "Rechtsclick > Öffnen mit > Foobar" funktioniert ja.

Man müsste also iwie die Option "TOFILE" mit "OPENWITH" ersetzen^^, geht das?
SelectEx FILES LINEAR PATH={sourcepath$} RECURSE ITEMCOUNTPERC=100 NAME="\.(flac|mp3|cue)$" OPENWITH="C:\Foobar.exe"

Edit:
Das mit der M3U würde klappen, wenn man die M3U im ANSI Format erstellen könnte, aber lieber wäre mir dennoch eine direkte Übergabe an Foobar.

Hab das mal eben mit dem Befehl TOCLIP getestet, allerdings scheint er da nix ins Clipboard zu schreiben:
SelectEx FILES LINEAR PATH={sourcepath$} RECURSE ITEMCOUNTPERC=100 TOCLIP NAME="\.(flac|mp3|cue)$"

Die Idee wäre einfach danach eine Commandline auszuführen:
"C:\Programme (portable)\+ ..... Audio & Video\foobar2000\foobar2000.exe" /add {clip}

Benutzeravatar
tbone
Berater
Beiträge: 404
Registriert: 22. Nov 2014 21:16
Betriebssystem: 7*64
Produkt: aktuelle Beta-Version
Version DOpus: Pro

Re: Musikdateien aus mehreren Unterordnern mit Foobar öffnen

Beitrag von tbone » 31. Aug 2017 08:09

Weil Du ganze Folder-Hierarchien und deren Inhalt an Foobar übergeben wolltest, ging ich davon aus, dass das meist so viele Dateien sind, dass das Aufzählen in der Commandline zu Schwierigkeiten führen dürfte. Die Länge so einer Commandline liegt irgendwo bei 8192 Zeichen und da bist Du relativ schnell am Ende, wenn Du versuchst alle Dateinamen (evtl. noch mit Pfad) so zu übergeben.

Einzeln an Foobar übergeben kriegt man auch hin, aber hier wäre dann das Problem, dass man bei vielen Dateien, dann genauso oft Foobar.exe starten müsste, könnte also eine ziemlich langsame Geschichte sein.

Ergo die Playlist, die ist ansich eine sehr effektive Variante und lässt sich ja auch wieder löschen, falls Dich die temporäre Datei nervt, hu? o)

Du kannst ja mal versuchen über den Kontextmenu Eintrag viele hundert Dateien (im Flatview) an Foobar zu übergeben (sofern das der Menge an Dateien entspricht mit denen Du so umgehen magst). Wäre interessant was passiert und ob es reibungslos klappt, eventuell kann man das Aufrufen des Kontextmenus simulieren, DO hat für solche Fälle den "ContextMenu" Befehl an Bord, den kann man dann vll mit der Option "COMMANDS" von SelectEx kombinieren (hier kann man Befehle mitgeben die für die selektierten Items auszuführen sind).
Ungefähr so: SelectEx ... COMMANDS="ContextMenu ITEMMODE LABEL \"Open with Foobar\"".

Mit {clip} und Kommandozeile zu hantieren hat die gleiche Längenbeschränkung wie oben erwähnt.
Du kannst die Playlist in ASCII erzeugen, dazu die Option ENCODING=ascii anhängen.

Mecum
Beiträge: 101
Registriert: 13. Dez 2008 13:34
Betriebssystem: Windows 7 Pro
Produkt: DOpus 11
Version DOpus: Pro

Re: Musikdateien aus mehreren Unterordnern mit Foobar öffnen

Beitrag von Mecum » 31. Aug 2017 16:14

300 Dateien mit "Open with" an Foobar zu übergeben ist wirklich ziemlich laggy, da arbeitet sich DOpus mit unzähligen Foobar Starts ab. Das ist also nicht die ressourcenschonende Arbeitsweise, die ich eigentlich wünschte^^.

Dass die Commandline ne Längenbegrenzung hat wusste ich nicht, damit fällt die Variante mittels {Clip} wohl auch flach.

Schade eigentlich, dass es keine Kommando-Alternative zu Drag'n'Drop gibt, weil hunderte Dateien im Flatview direkt ins Foobarfenster ziehen klappt einwandfrei.

Ich hab nun deinen Rat beherzigt und das ganze mit der Playlist realisiert, es funktioniert einwandfrei und bis auf den Zwischenschritt mit der temp-datei so wie gewünscht :D

Vielen Dank für deine Hilfe und liebe Grüße aus dem hochsommerlichen Süden Österreichs

Edit:
Und kaum hat man den ersten Erfolg errungen tun sich schon die nächsten Wünsche auf^^.

Gibt es eine einfache Möglichkeit, nur die im {sourcepath} markierten Folder zu durchforsten und deren Inhalt in die Playlist zu schreiben? Also nicht alle Folder. Und für den Fall, dass keine Folder markiert sind, dann eben doch alle.

Ein Ansatz wäre vllt sowas hier, allerdings wüsste ich jetzt nicht, ob DOpus die markierten Folder in einem zugänglichen Array ablegt:

Code: Alles auswählen

If DOpusSelectedFolderArray > 0 Then
  Delete FILE "%TEMP%\foobar.m3u" 'damit der APPEND Befehl korrekt funktioniert
  For x = LBound(DOpusSelectedFolderArray) to UBound(DOpusSelectedFolderArray)
    SelectEx ... PATH=DOpusSelectedFolderArray(x) ... APPEND
  Next
Else
  SelectEx ... PATH={sourcepath$} ...
End If
Auch wäre es schön, die foobar.m3u nicht erst löschen zu müssen sondern einfach neu anzulegen (überschreiben) ohne den Papierkorb zu bedienen und ohne dadurch auch im FAT jedesmal aufs neue die Datei neu einzutragen.

Benutzeravatar
tbone
Berater
Beiträge: 404
Registriert: 22. Nov 2014 21:16
Betriebssystem: 7*64
Produkt: aktuelle Beta-Version
Version DOpus: Pro

Re: Musikdateien aus mehreren Unterordnern mit Foobar öffnen

Beitrag von tbone » 1. Sep 2017 10:45

Dass SelectEx keine Datei anlegt, wenn APPEND verwendet wird ist gefixt, ggls. neu herunterladen.

Hier mal eine kleine Hilfe zur Selbsthilfe, das XLOG=a bei Fertigstellung vll wieder entfernen, kostet Leistung im DO-Log.
Ich weiß nicht ob das so direkt funktioniert, ist so halb aus der Hüfte, aber ansich müsste alles drin sein was Du Dir vorstellst.
Button natürlich auf JScript umstellen und die Angabe zum Pfad der Playlist-Datei und das Pattern gehören noch in Variablen. o)
Den Foobar.exe Aufruf ganz unten natürlich auch noch fertigstellen..

Code: Alles auswählen

function OnClick(data) {
	var f = data.func, stab = f.sourcetab, cmd = f.command;
	cmd.deselect = false;

	if (DOpus.FSUtil.Exists("%TEMP%\foobar.m3u")) //delete playlist
		cmd.RunCommand('Delete "%TEMP%\foobar.m3u" QUIET');

	if (stab.selected_dirs.count) {
		//folders selected, execute SelectEx multiple times
		for(i=0;i<stab.selected_dirs.count;i++){
			var dirItem = stab.selected_dirs(i);
			cmd.RunCommand('SelectEx FILES LINEAR PATH="'+dirItem.realpath+'" RECURSE '
					+'ITEMCOUNTPERC=100 TOFILE="%TEMP%\foobar.m3u" NAME="\.(flac|mp3|cue)$" '
					+'APPEND XLOG=a');
		}
	} else {
		//just once for the current source path
		cmd.RunCommand('SelectEx FILES LINEAR PATH="'+stab.path+'" RECURSE '
				+'ITEMCOUNTPERC=100 TOFILE="%TEMP%\foobar.m3u" NAME="\.(flac|mp3|cue)$" '
				+'XLOG=a');
	}

	if (DOpus.FSUtil.Exists("%TEMP%\foobar.m3u")) //do not run foobar for no results/no playlist file created
		cmd.RunCommand('Foobar /add "%TEMP%\foobar.m3u"');
}

Mecum
Beiträge: 101
Registriert: 13. Dez 2008 13:34
Betriebssystem: Windows 7 Pro
Produkt: DOpus 11
Version DOpus: Pro

Re: Musikdateien aus mehreren Unterordnern mit Foobar öffnen

Beitrag von Mecum » 2. Sep 2017 00:46

Für die Hüfte ist das ein äusserst ansehnliches Script^^.

Der Backslash in TOFILE="%TEMP%\foobar.m3u" musste noch escaped werden > TOFILE="%TEMP%\\foobar.m3u"

Was den Backslash im Pattern betrifft hab ich keine Ahnung, wie das hier genau gehandhabt wird.
Es scheint egal zu sein, ob diese Variable so
a) var selections ="\ "\.(flac|mp3|alac|cue)$\"";
oder so
b) var selections = "\"\\.(flac|mp3|alac|cue)$\"";
gesetzt wird. Was den Inhalt der playlist.m3u betrifft macht das keinen Unterschied.

Bei Variante a) sieht der übergebene Befehl lt DOpus Script Output so aus:
SelectEx ... NAME=".(flac|mp3|cue)$" ENCODING=ascii APPEND
KA unter welchen Umständen PATTERN das Escape Zeichen vor dem Punkt benötigt, solang es rennt lass ich's mal so.
Ich hab hier ebenfalls für Quotas gesorgt, obwohl es auch ohne funktioniert.

Noch nicht so ganz dahintergestiegen bin ich beim Delete Befehl.
Das da funktioniert:

Code: Alles auswählen

if (DOpus.FSUtil.Exists("%TEMP%\\playlist.m3u")) //delete playlist
cmd.RunCommand('Delete "%TEMP%\\playlist.m3u" QUIET');
Das hier allerdings nicht:

Code: Alles auswählen

var playlist = "\"%TEMP%\\playlist.m3u\"";
if (DOpus.FSUtil.Exists(playlist))
cmd.RunCommand('Delete '+playlist+' QUIET');
Das mit den Übergaben mit und ohne " ist jedesmal ne Herausforderung^^.

Ich denke, um auch nicht jedesmal nen neuen Papierkorbeintrag zu verursachen, wäre die eleganteste Lösung einfach das Überschreiben mit einer neu erstellten leeren Datei. Morgen mal nach ner brauchbaren Lösung dafür suchen.

Für heute erst mal vielen Dank für diese wirklich grosse Hilfe   :D

Benutzeravatar
tbone
Berater
Beiträge: 404
Registriert: 22. Nov 2014 21:16
Betriebssystem: 7*64
Produkt: aktuelle Beta-Version
Version DOpus: Pro

Re: Musikdateien aus mehreren Unterordnern mit Foobar öffnen

Beitrag von tbone » 2. Sep 2017 07:32

Nimm den doppelten Backslash für das Muster, das führt dann dazu, dass auch wirklich ein "." gesucht wird. "\." hat praktisch keinen Effekt, wir wollen ja, dass der Backslash mit "durch" geht und nicht vom JScript augefressen wird. Wenn Du schreibst "\\." bleibt effektiv ein "\." übrig und das escaped dann den Punkt für die RegEx, sodass das Muster auch wirklich auf Dateierweiterungs-Punkte prüft, und nicht nur auf irgendein Zeichen, wofür der "." in einer RegEx ja steht.

Was die Anführungszeichen angeht, versuch' es mal so:

Code: Alles auswählen

var playlist = "%TEMP%\\playlist.m3u";
if (DOpus.FSUtil.Exists(playlist))
	cmd.RunCommand('Delete "'+playlist+'" QUIET');
Die Anführungszeichen würde ich nie mit in die Variable einfügen, das führt zu diversen Ärgernissen.
Eines davon ist, dass ein Methoden-Aufruf wie DOpus.FSUtil.Exists(playlist) die Datei dann nicht findet, es gibt ja auch keine Datei die mit einem Anführungszeichen beginnt. Die Methodenaufrufe wollen die Pfade "roh". Baust Du allerdings Befehle zusammen wie bei RunCommand(..), brauchst Du wieder Anführungszeichen für die Pfade, weil diese Befehle ja erst geparsed werden. Ein Leerzeichen am falschen Fleck ohne "" ruiniert hier natürlich den ganzen Befehlsaufbau. Die Anführungszeichen direkt mit in den Aufbau des Befehls zu bauen, wie hier gezeigt, ist immer einfacher zu handhaben und auch nur dort gehören sie hin. JScript hat ja zwei Wege um Strings zu kennzeichnen, das kann man hier schön nutzen. Aussen die einfachen Anführungszeichen ' und innen die doppelten " um die Pfade zu umschließen, die man mittels Variablen dort einsetzt. Hier sind auch keine weiteren Escape-Backslashes nötig und es liest sich somit sogar noch ganz anständig.

Du mit Deinen Papierkorbeinträgen. o)
Darüber habe ich mir noch nie Gedanken gemacht, aber ansich gar nicht verkehrt, wenn man den Papierkorb oft benutzt und darin dann nicht ohne Ende Einträge haben will die nur stören. Nun, den Inhalt der Playlist kannst Du über JScript mit folgenden Zeilen löschen (es öffnet die Datei im Write-Modus und absichtlich nicht im Append-Modus, welcher nicht dazu führen würde, dass der Inhalt beim Öffnen/Schließen wegfliegt):

Code: Alles auswählen

var fso = new ActiveXObject("Scripting.FileSystemObject");
var zro = fso.OpenTextFile(playlist,2,true); zro.Close();

Mecum
Beiträge: 101
Registriert: 13. Dez 2008 13:34
Betriebssystem: Windows 7 Pro
Produkt: DOpus 11
Version DOpus: Pro

Re: Musikdateien aus mehreren Unterordnern mit Foobar öffnen

Beitrag von Mecum » 4. Sep 2017 01:28

Sodala, ich hab jetzt erst mal gute 2 bis 3 stunden rumgespielt und gesucht aber keine Lösung für folgende Probleme gefunden^^

Das da geht:

Code: Alles auswählen

var fso = new ActiveXObject("Scripting.FileSystemObject");
var zro = fso.OpenTextFile("C:\\test.m3u",2,true,0); zro.Close();
Sobald ich aber die %TEMP% Variable miteinbauen will geht's nicht mehr:

Code: Alles auswählen

var fso = new ActiveXObject("Scripting.FileSystemObject");
var zro = fso.OpenTextFile("%TEMP%\\test.m3u",2,true,0); zro.Close();
Script Output: Der Pfad wurde nicht gefunden. (0x800a004c)
Muss man die %TEMP% Variable für JScript vllt extra definieren?

Weiters wollte ich versuchen die Pfadangaben in den Variablen wie gewohnt mit nur einem "\" zu setzen, einfach der besseren Logik wegen, und anschliessend aus einem Backslash zwei zu machen. Auch wenn das in diesem Script hier nicht unbedingt nötig ist, für weitere Bastelarbeiten wäre es schön zu wissen, ob das überhaupt ginge. (Wie man Textbausteine austauschen kann, dazu finden sich unzählige Beispiele, aber sobald's kompliziert wird ist's aus mit dem Wissen im World Wide Web^^.)

Mein Ansatz:

Code: Alles auswählen

var foobar = "C:\Programme (portable)\+ ..... Audio & Video\foobar2000\foobar2000.exe"
var foobar = foobar.replace(/\\/g,"\\\");
Pustekuchen^^

Würde mich sehr freuen, wenn du vllt ne Idee hättest, wie man die %TEMP% Variable auch in JScrip nutzen kann und ob du vllt ne Lösung zum Thema Backslash zur Hand hättest.

Und dann bin ich über nochwas gestolpert:

Bei manchen Foldern und Dateinamen klappt das mit der Playlist im ANSI Format nicht wegen der Sonderzeichen, zb wenn "Dvořák" im Pfad vorkommt. Setze ich allerdins "ENCODING=unicode" und speichere die Datei als playlist.m3u8 ab erzeugt SelectEx eine Datei im Format UCS-2 LE. Foobar benötigt allerdings UTF-8, gibt es vllt eine Möglichkeit die playlist in UTF-8 zu speichern? Ich nehme an, dass du hierfür im SelectEx Skript ne zusätzliche Option einfügen müsstest.

Sollte das zu kompliziert sein gäbe es noch die Möglichkeit eine Konvertierung mittels "ADODB.Stream" in VBScript durchzuführen:

Code: Alles auswählen

Set objFSO = CreateObject("Scripting.FileSystemObject")
txt = objFSO.OpenTextFile("C:\test.ucs2le", 1, false, -1).ReadAll

Set objStream = CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = 2
objStream.Position = 0
objStream.Charset = "utf-8"
objStream.WriteText txt
objStream.SaveToFile "C:\test.m3u8", 2
objStream.Close
Da müsste ich halt eine bereits erzeugte Datei öffnen, auslesen und neu abspeichern, was wieder Zeit frisst und Plattenzugriffe verursacht.
Mal schaun, ob man das auch in JScript bewerkstelligen kann, obwohl natürlich eine direkte Unterstützung aus SelectEx heraus besser wäre :D

Danke jedenfalls für deine Geduld und schon mal nen schönen Wochenbeginn   :D

Benutzeravatar
tbone
Berater
Beiträge: 404
Registriert: 22. Nov 2014 21:16
Betriebssystem: 7*64
Produkt: aktuelle Beta-Version
Version DOpus: Pro

Re: Musikdateien aus mehreren Unterordnern mit Foobar öffnen

Beitrag von tbone » 4. Sep 2017 12:13

Umgebungsvariablen auflösen über DOpus geht hier am Einfachsten:
var filePath = DOpus.FSUtil.Resolve("%TEMP%\\test.m3u");

Backlash nur einmal:
Geht so nicht, ein einzelner Backslash ist das Escape-Zeichen, schreibt man nur "\" landet immer nur das folgende Zeichen im String.
Da kannst Du also mit find/replace lange probieren, ein Backslash kommt erst in den String, wenn er mit "\\" angegeben wurde. o)
Du kannst aber versuchen alles mit "/" anzugeben, sollte auch klappen.

Encoding:
Ja, ohne den ADODB.Stream-Trick lassen sich leider keine UTF8 Dateien schreiben. Nur ANSI und UTF16 zur Wahl zu haben gefällt mir auch nicht - muss ich mir bei Gelegenheit mal vornehmen und dann bestenfalls gleich etwas Vernünftiges, Wiederverwendbares bauen. Das Encoding-Thema findet sich nämlich in diversen DO Scripts/Addins.

Mecum
Beiträge: 101
Registriert: 13. Dez 2008 13:34
Betriebssystem: Windows 7 Pro
Produkt: DOpus 11
Version DOpus: Pro

Re: Musikdateien aus mehreren Unterordnern mit Foobar öffnen

Beitrag von Mecum » 6. Sep 2017 04:51

Erst mal vielen Dank für die weitere Hilfe. So langsam wird das ganze was :D

Eine Frage hätte ich noch:
Die Funktion SelectEx gibt als Value "0" zurück wenn nichts gefunden wurde (No items, aborting) und "-1" wenn Dateien verarbeitet wurden. Gibt es eine Möglichkeit als Return die Gesamtzahl der verarbeiteten Objekte zu erhalten? Für meine aktuelle Verwendung reicht aborting/done vollkommen aus, wäre also nur ein Vorschlag.

Benutzeravatar
tbone
Berater
Beiträge: 404
Registriert: 22. Nov 2014 21:16
Betriebssystem: 7*64
Produkt: aktuelle Beta-Version
Version DOpus: Pro

Re: Musikdateien aus mehreren Unterordnern mit Foobar öffnen

Beitrag von tbone » 6. Sep 2017 11:23

Bitte gern! o)

Der direkte Rückgabewert ist immer 0 bzw. -1, das geht über DO leider nicht anders. -1 kann man erzwingen (bedeutet SUCCESS) mit dem NOFAIL Switch. Obwohl, Returnwert "0" bedeutet doch eigentlich SUCCESS würde ich meinen, nun, da musst Du nochmal gucken und meine Aussage evtl. umdrehen. o)

Wenn Du die Anzahl der selektierten Elemente haben möchtest und Du bist im Scripting, dann kannst Du mittels der TOVAR Option die Elemente in eine Art Rückgabe-Array packen. Beispielsweise so:

Code: Alles auswählen

SelectEx ... TOVAR=SelectEx.Result
Die Variable die wir "SelectEx.Result" genannt haben, und die nun die Elemente enthält, lebt im Tab-Scope/Kontext.
Somit kannst Du nach dem Aufruf von SelectEx die Variable mit clickData.func.sourcetab.vars("SelectEx.Result") auslesen, bzw. die Länge des Arrays bestimmen über clickData.func.sourcetab.vars("SelectEx.Result").length oder hinten ".count", bin gerade nicht sicher.

Mecum
Beiträge: 101
Registriert: 13. Dez 2008 13:34
Betriebssystem: Windows 7 Pro
Produkt: DOpus 11
Version DOpus: Pro

Re: Musikdateien aus mehreren Unterordnern mit Foobar öffnen

Beitrag von Mecum » 6. Sep 2017 22:55

Hm, also irgendwie krieg ich das nicht gebacken^^

Kann es sein, dass die Rückgabevariable "SelectEx.Result" für die clickData-Funktion inkompatibel ist?
Count ist lt Reference korrekt, length sollte aber als Synonym ebenfalls funktionieren.

Diese beiden Zeilen schreiben mir jedenfalls nichts in die "countEntries" Variable:

Code: Alles auswählen

cmd.RunCommand('SelectEx FILES LINEAR PATH="'+stab.path+'" RECURSE '
		+'ITEMCOUNTPERC=100 TOFILE="'+playlistUnicode+'" TOVAR=SelectEx.Result NAME="'+selections+'" '
		+'ENCODING=unicode XLOG=a');
var countEntries = data.func.sourcetab.vars("SelectEx.Result").count;
countEntries scheint gänzlich unbelegt zu sein, weder als int noch als string, eine temporäre Anzeige in nem Popup bleibt leer.

Dachte zuerst, dass vllt nicht beide Funktionen parallel klappen sowohl in ne Datei als auch in ne Variable zu schreiben, aber daran liegt's nicht.
Wenn du dir sicher bist, dass das funktionieren muss, dann werd ich weiter rumspielen, mal schaun, wo der Fehler noch liegen könnte...

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast