Metadaten /Exif von Dateien auslesen.

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
GreyEnt
Beiträge: 376
Registriert: 20.07.2006 19:41

Metadaten /Exif von Dateien auslesen.

Beitrag von GreyEnt »

Hallo.

Ich möchte gern ein Programm schreiben mit dem man die sogenannten "Metadaten" oder "Exifdaten" auslesen kann.
Soweit das für ein Ewigen Anfänger möglich ist. :)
Der Hintergrund:
In unserer Firma haben wir eine Vielzahl von CAD-Dateien.
In diesen CAD-Dateien sind Schlüsselwörter wie z.B. Benennung oder Material oder was auch immer hinterlegt.
Diese Daten würde ich gern auslesen ohne jede einzelne Datei mit dem CAD zu öffnen.

Leider ist das Thema "Metadaten" für mich total fremd. Gibt es evtl. eine art Normung wie man solche Daten
schreiben und lesen muß?
Oder macht das jeder so wie es grad gebraucht wird?

Wäre toll wenn Ihr mir etwas helfen könntet.
Es grüßt der
GreyEnt
Ich progge PureBasic weil Jägermeister nen dicken Kopf macht.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Metadaten /Exif von Dateien auslesen.

Beitrag von ts-soft »

Gibt es evtl. eine art Normung wie man solche Daten schreiben und lesen muß?
Nicht eine, sondern viele :wink:
Liste von Metadatenformaten
In diesem Zusammenhang vielleicht dies noch interessant:
Extensible Metadata Platform

Um z.B. Exif Dateien auszulesen, wäre dies ein Anfang:
Exchangeable Image File Format

Sieht anfangs zwar schwer aus, aber so schlimm ist es nicht, wenn man erstmal den Anfang hat :wink:
Je nachdem, welches Format gesucht wird, es ist viel Knobelei vonnöten. Aber das geht schon, schwieriger
wird es, wenn die Formate noch geschrieben werden sollen!

Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
GreyEnt
Beiträge: 376
Registriert: 20.07.2006 19:41

Re: Metadaten /Exif von Dateien auslesen.

Beitrag von GreyEnt »

Hi Thomas.

Dankeschön.
Ich progge PureBasic weil Jägermeister nen dicken Kopf macht.
Benutzeravatar
Josh
Beiträge: 1028
Registriert: 04.08.2009 17:24

Re: Metadaten /Exif von Dateien auslesen.

Beitrag von Josh »

Das was du suchst schreiben CAD-Programme üblicherweise in die Dateieigenschaften. Das schöne daran, du kannst darauf zugreifen ohne dass du das CAD-Programm selbst brauchst.

Google mal unter 'benutzerdefinierte Dateieigenschaften'. Ob du da was für Pb findest, weiß ich nicht. Aber da findest auf jeden Fall was für VBA oder so, dass sich leicht umsetzen läßt.
Benutzeravatar
juergenkulow
Beiträge: 188
Registriert: 22.12.2016 12:49
Wohnort: :D_üsseldorf-Wersten

Re: Metadaten /Exif von Dateien auslesen.

Beitrag von juergenkulow »

Hallo GreyEnt,

ich habe da mal einige Fragen:
In welchen Dateiformaten und Dateiversionen sind die CAD-Datei hauptsächlich gespeichert?
Sind die Dateien durch eine Vault Datenbank geschützt?
Sind die alle Kommandozeilen Optionen des, der CAD-Programme bekannt? PureBasic könnte die Optionen als Parameter$ gebrauchen:

Code: Alles auswählen

  Ergebnis = RunProgram(DateiName$ [, Parameter$, Arbeitsverzeichnis$ [, Flags [, SenderProgramm]]]) 
Kann das, die CAD-Programm(e) mit einem Keyboardhook versehen werden?

Code: Alles auswählen

  SendInput_(...) 
MSDN SendInput function
Strg-C kann auch per SendInput_ an ein CAD-Programm gesendet werden um den markierten Inhalt zu kopieren.
Können dann die Daten in die Zwischenablage übernommen werden?

Code: Alles auswählen

   Text$ = GetClipboardText()
  Ergebnis = GetClipboardImage(#Image [, Tiefe]) 
Und die wichtigste Frage zum Schluß: Könnte es Spaß machen, PureBasic ein CAD-Programm steuern zu lassen?
Bitte stelle Deine Fragen, denn den Erkenntnisapparat einschalten entscheidet über das einzig bekannte Leben im Universum.

Jürgen Kulow Wersten :D_üsseldorf NRW D Europa Erde Sonnensystem Lokale_Flocke Lokale_Blase Orion-Arm
Milchstraße Lokale_Gruppe Virgo-Superhaufen Laniakea Sichtbares_Universum
Benutzeravatar
Bisonte
Beiträge: 2427
Registriert: 01.04.2007 20:18

Re: Metadaten /Exif von Dateien auslesen.

Beitrag von Bisonte »

@juergenkulow: Es geht ihm doch darum, das CAD Programm nicht starten zu müssen... Wenn das CAD Programm läuft, wäre das PB Programm
überhaupt nicht nötig !
GreyEnt hat geschrieben:Diese Daten würde ich gern auslesen ohne jede einzelne Datei mit dem CAD zu öffnen.
PureBasic 6.04 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom​​
Benutzeravatar
GreyEnt
Beiträge: 376
Registriert: 20.07.2006 19:41

Re: Metadaten /Exif von Dateien auslesen.

Beitrag von GreyEnt »

Guten Morgen.
Vielen Dank für euer Einbringen. :)
@Josh
Ja genau. Das ist das was ich gemeint habe und auslesen möchte.
@juergenkulow
Das Dateiformat ist Solid Edge, die Version ist ST8.
Solid Edge erstellt verschiedene Dateien.
*.prt -> Part (Einzelteil)
*.psm -> Part Sheet Metall (Blechteil)
*.asm -> Assembly (Baugruppe)
*.drw -> Draft (Zeichnungsableitung Papierformat)
(Das sind die wichtigsten)

Die Dateien sind nicht durch eine Datenbank oder Dateiverwaltung geschützt.

Die Kommandozeilen Optionen sind mir nicht bekannt. (Ich versuche das in erfahrung zu bringen.)

Die Arbeit mit einem Keyboardhook ist mir nicht bekannt. (Ich versuche das in erfahrung zu bringen.)

MSDN SendInput function: Ist mir nicht bekannt. (Ich versuche das in erfahrung zu bringen.)

"Und die wichtigste Frage zum Schluß: Könnte es Spaß machen, PureBasic ein CAD-Programm steuern zu lassen?"
Erlaubt ist alles was Produktiv ist und Geld in die Kasse spült. :)
Aber so richtig habe ich Dich nicht verstanden. Was könnte man damit erreichen?

Ich habe grad kein Zugriff auf die Dateien.
Ich schicke Morgen ein paar Beispieldateien hoch. Auch gern ein Screenshot von den "Dateieigenschaften"

Vielen Dank an Euch
Gruß
GreyEnt
Ich progge PureBasic weil Jägermeister nen dicken Kopf macht.
Benutzeravatar
Josh
Beiträge: 1028
Registriert: 04.08.2009 17:24

Re: Metadaten /Exif von Dateien auslesen.

Beitrag von Josh »

Ob das ein .part, .asm, .dft oder sonst was ist, spielt für das, was du machen willst eigentlich keine Rolle. Das sind alles Compound-File, wo sich die Dateieigenschaften überall mit dem gleichen System auslesen lassen. Die Compound-Files sind genau das gleiche wie früher ein Word- oder Excelfile (bevor Micorsoft auf dieses XML-Zeugs umgestellt hat) und beinhalten ein eigenes FAT-Dateisystem. Ich hatte so was mal für VB6, kann es aber leider nicht mehr finden. Alles zu lange her. Schau mal in Cad.de ob du da einen Code für VBA oder so finden kannst, das würde sich dann relativ einfach auf Pb umsetzen lassen. Sind ja eigentlich Standardsachen.

Von Exifdaten habe ich heute das erste mal gehört. Ich habe das jetzt nur ganz oberflächlich im Netz überflogen. Ich glaube nicht, dass das das gleiche ist, wie es eben Siemens benutzt. Diese Exifdaten scheinen mir eher was für Bilder zu sein.

@juergenkulow
Sorry, wenn ich es so direkt sage. Diesen ganzen Mist braucht GreyEnt nicht. Wenn einer ein CAD-System steuern will, dann geht das über die Programmierschnittstellen. Aber das ist dann eine ganz andere Liga. Hier geht es nur um simple Dateieigenschaften, wahrscheinlich um Stücklisten zu generieren.
Benutzeravatar
GreyEnt
Beiträge: 376
Registriert: 20.07.2006 19:41

Re: Metadaten /Exif von Dateien auslesen.

Beitrag von GreyEnt »

@Josh
Sorry. Ich glaube auch Exif hat etwas mit Informationen zu Bilddateien zu tun.
Jedoch nicht für meine SolidEdge Geschichte.
War der Meinung das sind Stichworte für das Gleiche Thema.

Dieses Programm wollte ich aufziehen um nach Informationen suchen zu können.
(Nur lesend. Keine CAD Daten ändern).
Im normalen Fall werden am CAD System div. Datenbanken vorgeschaltet. Mit Hilfe der
Datenbank ist man dann in der Lage nach allen Möglichen Kriterien zu suchen. Oder
z.B. analysieren wie oft "Kugellager xyz" in welchen Baugruppen vorkommt.
Mit Hilfe einer Datenbank wird das CAD System hochflexibel und sollte niemals fehlen.
Wir haben leider keine Datenbank. Teilweise wissen wir nach 14 Tagen nicht mehr wo wir
die Teile gespeichert haben.
Ich progge PureBasic weil Jägermeister nen dicken Kopf macht.
Benutzeravatar
Josh
Beiträge: 1028
Registriert: 04.08.2009 17:24

Re: Metadaten /Exif von Dateien auslesen.

Beitrag von Josh »

Ich weiß ja nicht wie groß eure Bude ist, ab einer gewissen Größe geht es nicht mehr ohne Datenbanksystem. Wenn eure Firma allerdings nicht besonders groß ist, dann sei froh, dass ihr keines habt. Da habe ich schon die wildesten Sachen gesehen und einige haben die Einführung im Nachhinein bereut. Manche Datenbanksysteme zerstören den Dateiaufbau unwiederruflich, schmeißen alle Dateien in ein Verzeichnis, benennen die CAD-Dateien mit einer UUID um, so dass du nur mehr über das Datenbanksystem zugreifen kannst und auf den Datenbankanbieter auf immer und ewig ausgeliefert bist. Bei einer kleinen Bude mit sagen wir drei Konstrukteuren kannst einen halben Mann gleich abschreiben, weil der nichts wie Datenbankveraltung macht.

Wenn ihr allerdings eure Teile nicht mehr findet, dann solltet ihr vielleicht auch euer System überdenken :bounce:

Selbst mit einer simplen hierarchischen Verwaltung im Dateisystem mit Unterordnern lässt sich hervorragend arbeiten. Zeichnungsnummer/Artikelnummer stehen dann in einem direkten Zusammenhang mit dem Speicherort auf eurem Server.

Wie gesagt, schau dich mal auf cad.de um, egal welche Sprache. Auch egal ob es SolidWorks oder Inventor ist, die machen alle exakt den gleichen Mist. Vielleicht finde ich ja auch noch irgendwo meine alten VB6 Sachen ^^
Antworten