Lesen von DICOM Dateien (514 kByte)
Übersicht

FERENCBetreff: Lesen von DICOM Dateien (514 kByte) |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
![]() hallo Freunde der Programmierkunst - ich möchte DICOM 3 Dateien öffnen, um zumindest den Header auszulesen ( ASCII - Zeichen) Leider kann ich die Datei offenbar wegen ihrer Größe nicht öffnen. Eine Bilddatei hat ca 514 kByte Ich erhalte bei entsprechenden Befehlen den Fehler: " expecting end-of-file ". Auch die Bestimmung der Dateigröße mit FileSize wird nicht durchgeführt; als Ergebnis erhält man size=0. Wer kann mir weiterhelfen ? Hat jemand vielleicht einen Dicom-Leser programmiert ? Im voraus vielen Dank - FERENC |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Expecting end of file kenn ich eigentlich nur als Fehlermeldung für den Quellcode, sollte also damit nichts zu tun haben. | ||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
FERENC |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
![]() hallo Hubsi - danke für die Nachfrage hier kurz der Code (sucht nur nach der 1. Dicom-Datei im Verzeichnis c:\DICOMTEST und versucht sie zu öffnen). wenn man die auskommentierten drei Zeilen aktiviert, kommt der Fehler "expecting end of file" die Datei heißt: 1.3.46.670589.10.13.800143.1.2155740725.0.4885.0.1.1.dcm Code: [AUSKLAPPEN] Print "DICOM-Öffnen"
verzeichnisvariable = ReadDir("c:\DICOMTEST\") dateipfad$ = NextFile(verzeichnisvariable) Print dateipfad$ While Instr(dateipfad$,"0") = 0 dateipfad$ = NextFile(verzeichnisvariable) Print dateipfad$ Wend Print dateipfad$ ;dateipfad$=dateipfad$&".dcm" ;stream = OpenFile(dateipfad$) ;CloseFile stream Input a$ End by the way, wie kann ich mit 'INSTR' nach Dateiendungen suchen; der naheliegende Weg scheint nicht zu gehen ( if INSTR (DICOMDATEI$,".DCM") <>0 ..... vorab vielen Dank FERENC |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hier liegt der Fehler:Code: [AUSKLAPPEN] dateipfad$=dateipfad$&".dcm" Strings lassen sich mit + verknüpfen:Code: [AUSKLAPPEN] dateipfad$=dateipfad$+".dcm" ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
Blatolo |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Print "DICOM-Öffnen"
verzeichnisvariable = ReadDir("c:\DICOMTEST\") Repeat dateipfad$ = NextFile(verzeichnisvariable) Print dateipfad$ Until Right(dateipfad$,3)="dcm" Or dateipfad$="" CloseDir(verzeichnisvariable) stream = OpenFile("c:\DICOMTEST\"+dateipfad$) CloseFile stream a$=Input() End Sollte das machen was du wolltest. |
||
FERENC |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
![]() vielen Dank für den eleganten Code, Blatolo! leider habe ich noch folgendes Problem: wenn ich den Code erweitere um Code: [AUSKLAPPEN] size = FileSize(stream)
Print size erhalte ich als Ausgabe den Wert Null Die Dateigröße ist aber 514 kByte. Mit dem MS-Editor kann man die Datei auch öffnen: sie enthält echte ASCII-Zeichen und weitere nicht darstellbare Zeichen. Vielen Dank für die Hilfe und noch schönen Rest vom Pfingstmontag FERENC[/code] |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
FileSize funktioniert anders:Code: [AUSKLAPPEN] size=FileSize("Datei.txt") ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
FERENC |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
![]() Vielen Dank Hubsi, du hast mir wirklich weitergeholfen. FERENC |
||
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
@FERNEC: Jo, ich hab für die Firma, wo meinereiner arbeitet, ein Dicom-Module (lesen/schreiben) programmiert, allerdings in C#. Was willst du denn mit DICOM Dateien? Das sind ja nicht einfach nur simple Bilddateien. In einer DICOM Datei sind ja noch massig andere Daten enthalten. Naja, ich wünsche trozdem viel Spass beim programmieren. ![]() Falls du dich tiefer in die Materie einarbeiten willst, solltest du die dir 16 Bändige DICOM Spezifikation downloaden. grüße |
||
FERENC |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
8)
Hallo David - vielen Dank für den Hinweis. Mein Problem mit den DICOM-Dateien ist im Moment noch simpel. Mich interessiert nicht der Bildbereich sondern nur der Header. Ich produziere täglich hunderte, manchmal tausende von DICOM - Bildern. Einen Teil dieser Bilder speichere ich in abgetrennten Bereichen, um sie zu brennen und mitzugeben. Die Rekonstruktionssoftware, die ich in diesem speziellen Bereich einsetze, lagert die Dateien aber unter den hübschen, vielsagenden Namen mit 50 kryptischen Zeichen aus. Ich möchte nun, bevor ich den Bereich sichere, eine Patientenliste anlegen bzw. auslesen und mit auf die ArchivierungsCD brennen. - That's all. Ich denke, daß ich mir dafür die 16 Bände DICOM-Spezifikation vorest schenken kann. Aber danke für den Tipp; wer weiß, wie das nächste 'Projekt' aussieht. (Kleiner Scherz; DICOM Dateien wandele ich mit IRFAN-VIEW in handlichere Formate) Gruß FERENC |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group