Hallo zusammen,
ich habe hier ein Programm, das überprüft, ob eine Datei bereits vorhanden ist, indem es versucht die Datei zu öffnen und den Fehlercode "7" auswertet.
Nun habe ich das Problem, dass die Dateinamen sich ändern und einen Timestamp (Datum und Uhrzeit) angehängt bekommen. Wenn nun die Datei "4711.tdms" geladen werden soll, diese aber "4711_2013_01_15.tdms" heisst, erkennt das System nicht, dass die DAtei schon vorhanden ist.
Gibt es eine Möglichkeit nur auf den ersten Teil (hier jetzt die ersten 4 Stellen) der Datei abzufragen?
Es gibt z.B.: die Funktion "Prüfen, ob Datei oder Ordner existiert", aber ich müsste wissen, ob man da "Wildcards" also Platzhalter einbauen kann.
Ich möchte einfach wissen, ob schon jemand die Datei 4711_x_y_z... schon angelegt hat.
Gruß aus dem Saarland
Hallo
Es gibt bereits LabVIEW Funktionen, welche prüfen ob eine Datei bereits existiert (siehe Bild im Anhang).
Nun zu deiner eigentlichen Frage...
Du kannst dir z.B. die ganze File-Liste des entsprechenden Ordners auslesen und danach die Filenamen prüfen (Match Pattern Funktion aus der String-Palette).
Ein kleines Beispiel (Bild) dazu findest du auch im Anhang.
Wie die Funktionen in der Deutschen LabVIEW Version heissen, kann ich dir leider nicht sagen.
Gruss
Chris
Super, danke für die Antwort,
genau diese Funktion habe ich vor 5 Minuten auch gefunden

Es ist zwar etwas kompliziert, aber es funktioniert.
Hallo nameless,
Zitat:Es ist zwar etwas kompliziert, aber es funktioniert.
Ja, aber nur durch den massiven Einsatz von Sequenzstrukturen.
Warum nimmst du nicht einfach Drähte statt der lokalen Variablen? Warum lässt du die Terminals unbenutzt???
THINK DATAFLOW!
RubeGoldberg-Alarm: Warum gibst du im True-Case einer Casestruktur ein TRUE aus? (Ich vermute im False-Case eine FALSE-Konstante...)
Hallo,
Das mit der Casestruktur ist ein Überbleibsel aus den Versuchen. Die könnte man löschen, da hast du recht.
Ich komme aus der Java-Programmierung und benutze gerne Variablen, darum keine Drähte.
Aber was meinst du mit "Terminals"?
Gruß,
Marc
Hallo Marc,
deine Fragen wurden gerade erst in einem
anderen Thread geklärt...
Jetzt weiss ich, was du meinst. Ich schreibe der Übersicht halber gerne die Variablen an den Anfang, das ist alles.
Hallo Marc,
Zitat: Ich schreibe der Übersicht halber gerne die Variablen an den Anfang, das ist alles.
Wo ist der "Anfang" auf einem großen weißen Blatt Papier (lies: "Blockdiagramm")?
Wo ist der Anfang, wenn alles, was nicht per DATAFLOW sequenziert ist, parallel abgearbeitet wird?
- LabVIEW arbeitet nicht "von oben nach unten" wie bei textbasierter Programmierung - und auch nicht "von links nach rechts"!
- "Lokale Variablen" sind keine Variablen wie bei textbasierte Programmierung, sondern "lokale Kopien" (
leider heißen sie nicht so...)
- "Lokale Variablen" führen schnell zu RaceConditions...
-
THINK DATAFLOW!
Wie gesagt, ich habe verstanden, was du meintest.
Ich arbeite immer nach dem Prinzip:
eine "flache Sequenzstruktur" aufbauen und den Ablauf von links nach rechts programmieren.( Ähnlich einer Schrittkette ) und dann kommen an den "Anfang" die Variablen und deren Initialisierung.
RaceConditions habe ich so nicht zu befürchten.
Hallo Marc,
Zitat:RaceConditions habe ich so nicht zu befürchten.
Das hat der Kollege im verlinkten Thread sich wohl auch gedacht - und prompt eine Racecondition programmiert...