Hallo,
ich habe einen Schaltplan geöffnet und möchte nun herausbekommen, welche *.sch sich im aktuellen Pfad befinden. Geht das mit ULP irgendwie?
Uwe Thiemer
Hallo,
ich habe einen Schaltplan geöffnet und möchte nun herausbekommen, welche *.sch sich im aktuellen Pfad befinden. Geht das mit ULP irgendwie?
Uwe Thiemer
Am 03.07.2015 um 09:41 schrieb timmle:
Hallo,
ich habe einen Schaltplan geöffnet und möchte nun herausbekommen, welche
*.sch sich im aktuellen Pfad befinden. Geht das mit ULP irgendwie?
Uwe Thiemer
--
Um alle Bilder und Anhänge in diesem Beitrag zu sehen, besuchen Sie:
HELP
-> User-Language
-> Builtins
-> Builtin-Functions
-> Datei-Funktionen
fileglob()
***
Um das Original zu lesen, und auch zuverlässig angehängte Dateien
bereitstellen zu können, benutzen Sie news.cadsoft.de und einen
funktionierenden News-Reader wie Thunderbird!
***
Mit freundlichen Grüßen / Best regards
Alfred Zaffran
--
______________________________________________________________
Alfred Zaffran Support
CadSoft Computer GmbH Hotline: 08635-698930
Pleidolfweg 15 FAX: 08635-698940
84568 Pleiskirchen eMail: <alf@cadsoft.de>
Web: <www.cadsoft.de>
Registergericht: Amtsgericht Traunstein HRB 5573
Geschaeftsfuehrer: Mark Whiteling
______________________________________________________________
Hallo Herr Zaffran,
ich komme mit der Funktion fileglob() - und speziell der Angabe pattern nicht zurecht:
"fileglob sucht in einem Verzeichnis nach pattern. ... endet pattern mit einem '/', wird der Inhalt des angegebenen Verzeichnis zurückgegeben."
"Die Sondereinträge '.' und '..' (für das aktuelle und das übergeordnete Verzeichnis) werden nie in array geschrieben."
Ich habe
string a[]; int n = fileglob(a, "*.sch"); int n = fileglob(a, "*.sch/"); int n = fileglob(a, "*.sch/.");
probiert, erhalte aber nie etwas im Array zurück. Wie kann ich das aktuelle Verzeichnis durchsuchen?
Vielen Dank
uwe Thiemer
Am 03.07.2015 um 11:57 schrieb timmle:
Hallo Herr Zaffran,
ich komme mit der Funktion fileglob() - und speziell der Angabe
pattern nicht zurecht:
"fileglob sucht in einem Verzeichnis nach pattern. ... endet pattern mit
einem '/', wird der Inhalt des angegebenen Verzeichnis zurückgegeben."
"Die Sondereinträge '.' und '..' (für das aktuelle und das
übergeordnete Verzeichnis) werden nie in array geschrieben."
Ich habe
string a[];
int n = fileglob(a, "*.sch");
Der Stern * darf nicht sein, wie in der Hilfe für fileglob()
beschrieben. Der * darf in einem Dateinamen nie vorkommen.
int n = fileglob(a, ".sch");
***
Um das Original zu lesen, und auch zuverlässig angehängte Dateien
bereitstellen zu können, benutzen Sie news.cadsoft.de und einen
funktionierenden News-Reader wie Thunderbird!
***
Mit freundlichen Grüßen / Best regards
Alfred Zaffran
--
______________________________________________________________
Alfred Zaffran Support
CadSoft Computer GmbH Hotline: 08635-698930
Pleidolfweg 15 FAX: 08635-698940
84568 Pleiskirchen eMail: <alf@cadsoft.de>
Web: <www.cadsoft.de>
Registergericht: Amtsgericht Traunstein HRB 5573
Geschaeftsfuehrer: Mark Whiteling
______________________________________________________________
etwas verwundert mich . Sie schreiben:
Der Stern * darf nicht sein, wie in der Hilfe für fileglob() beschrieben.
In meiner ulp-Beschreibung steht auf Seite 99: "pattern kann '*' und '?' als Platzhalter enthalten."
Ich habe Ihren Vorschlag getestet, erhalte da aber keine Dateiliste. Nur wenn ich den korrekten Pfad angebe, funktioniert die Funktion:
Die Zeile 9 möchte ich aber vermeiden, damit das ULP aus jedem ordner funktioniert.
Ich benötige im Array nur die Namen der Schaltpläne.
Uwe Thiemer
Am 03.07.2015 um 13:27 schrieb timmle:
etwas verwundert mich :-/. Sie schreiben:
Der Stern * darf nicht sein, wie in der Hilfe für fileglob()
beschrieben.
In meiner ulp-Beschreibung steht auf Seite 99: "pattern kann '' und
'?' als Platzhalter enthalten.*"
Entschuldigung, war ein Fehler meinerseits, ich hatte ein spezielles ULP
aus meiner internen Sammlung betrachtet.
Ein Beispiel ist in "editnext-lbr.ulp", das zum Standardlieferumfang
von Eagle gehört.
Ich habe Ihren Vorschlag getestet, erhalte da aber keine Dateiliste. Nur
wenn ich den korrekten Pfad angebe, funktioniert die Funktion:
Das ist selbstverständlich, ohne kompletten Pfad liefert Fileglob() nur
die Dateien des Ordner, auf dem das System momentan gestellt ist.
Mit filedir() erhalten sie den aktuellen Pfad.
Hier ein vollständiges Beispiel:
#usage "Beispiel für fileglob()"
string Pfad = "";
schematic(S) {
Pfad = filedir(S.name);
}
string f[];
string Filter = "*.sch";
int fcnt = fileglob(f, Pfad + Filter);
int sel = -1;
int srt = 0;
string Info;
sprintf(Info, "%d Dateien gefunden im Pfad von :\n\"%s\"\nmit
Erweiterung \"%s\"", fcnt, Pfad, Filter);
dlgDialog("fileglob()") {
dlgLabel(Info);
dlgHBoxLayout dlgSpacing(600);
dlgHBoxLayout {
dlgVBoxLayout dlgSpacing(600);
dlgListView("Dateien", f, sel, srt);
}
dlgHBoxLayout {
dlgStretch(1);
dlgPushButton("OK") dlgAccept();
dlgStretch(1);
}
};
Die Zeile 9 möchte ich aber vermeiden, damit das ULP aus jedem ordner
funktioniert.
Den Ordner müssen sie mit
Pfad = filedir(S.name);
ermitteln, oder mit dlgFileOpen() auswählen, oder als String
mit dlgStringEdit() eingeben.
***
Um das Original zu lesen, und auch zuverlässig angehängte Dateien
bereitstellen zu können, benutzen Sie news.cadsoft.de und einen
funktionierenden News-Reader wie Thunderbird!
***
Mit freundlichen Grüßen / Best regards
Alfred Zaffran
--
______________________________________________________________
Alfred Zaffran Support
CadSoft Computer GmbH Hotline: 08635-698930
Pleidolfweg 15 FAX: 08635-698940
84568 Pleiskirchen eMail: <alf@cadsoft.de>
Web: <www.cadsoft.de>
Registergericht: Amtsgericht Traunstein HRB 5573
Geschaeftsfuehrer: Mark Whiteling
______________________________________________________________