PDA

View Full Version : IFS Dateityp ändern



Seiten : [1] 2

loeweadolf
21-01-10, 13:31
Im IFS habe ich eine Datei mit Endung .txt und als Typ = "Textdokument".

Nachdem ich diese Datei mit CPYFRMSTMF runtergezogen habe in eine DB-Datei benenne ich die Datei im IFS um mit Hilfe eines RPG-Programmes, welches das Ext-Programm "Op0lRenameKeep" benutzt (muss ein IBM-API sein).
Der neue Datei-Name hat ebenfalls hinten die Endung .txt.

Der Datei-Type ist nun aber "Datei" anstatt "Textdokument".

Wenn ich nun den Namen dieser Datei über den Navigator manuell umbenenne auch wieder mit hinten .txt, bleibt der Dateitype "Datei" erhalten. Erst nach ca. 5-10 Versuchen ist der TYP dann plötzlich auf einmal wieder "Textdokument".

Das wäre mir eigentlich egal, aber das CPYFRMSTMF kopiert mir die Daten anscheinend nur, wenn es der Dateitype "Textdokument" ist.


Frage-1: wie kann ich im Navigator den
Dateitype ändern
Frage-2: warum kopiert das
CPYFRMSTMF keine "Datei",
sondern nur ein
"Textdokument"

Fuerchau
21-01-10, 13:35
Dem CPYFRMSTMF ist der Dateitype vollkommen egal, da dies Windowsspezifisch ist, und der Name ja voll qualifiziert angegeben wird.

Ich denke, das Problem liegt ggf. in einem Leerzeichen beim Dateityp. Also ggg ".txt ".
Dieser ist in Windows natürlich nicht bekannt.

loeweadolf
21-01-10, 13:39
Dem CPYFRMSTMF ist der Dateitype vollkommen egal, da dies Windowsspezifisch ist, und der Name ja voll qualifiziert angegeben wird.

Ich denke, das Problem liegt ggf. in einem Leerzeichen beim Dateityp. Also ggg ".txt ".
Dieser ist in Windows natürlich nicht bekannt.


Ich habe das zig-mal probiert.
Der Datei-Name ist ganz bestimmt ohne Leerzeichen richtig geschrieben.

Daten werden nur übernommen bei Type "Textdokument"

Fuerchau
21-01-10, 13:45
Ich hatte auch schon mal Probleme mit Leerzeichen am Ende eines Dateinamens bzw. Verzeichnisses.

Öffne den Windows-Explorer, zeige die Dateinamen und und drücke dann F2 zum Umbenennen.
Mit den Cursortasten kannst du dann die Zeichen genau bearbeiten.

Im Explorer über "Extras->Ordneroptionen", Register Dateitypen werden in Windows nämlich die Zuordnungen zwischen "Extension" und Namen sowie Anwendung verwaltet (Registry).
Die AS/400 kennt sowas gar nicht.

loeweadolf
21-01-10, 13:56
Ich hatte auch schon mal Probleme mit Leerzeichen am Ende eines Dateinamens bzw. Verzeichnisses.

Öffne den Windows-Explorer, zeige die Dateinamen und und drücke dann F2 zum Umbenennen.
Mit den Cursortasten kannst du dann die Zeichen genau bearbeiten.

Im Explorer über "Extras->Ordneroptionen", Register Dateitypen werden in Windows nämlich die Zuordnungen zwischen "Extension" und Namen sowie Anwendung verwaltet (Registry).
Die AS/400 kennt sowas gar nicht.


Ich habe ja keine Leerzeichen nach dem Namen und vor der Extension. Das habe ich mehrfach kontrolliert.

Ich habe jetzt aber festgestellt, dass nach Umbennnung durch mein Programm zwar ein Zurückumbenennen im Navigator sofort möglich ist (wird auch entspr. angezeigt nach Aktualisierung), eine Änderung des Dateitypes erfolgt aber erst bei einer Umbennung, die ca. 3 Minuten nach der Umbennung durch mein Programm folgt.

Kann es sein, dass eine Zeitlang im Windows was gesperrt ist ?
(ca. 3 Minuten)


(kommt mir alles etwas merkwürdig vor)

Fuerchau
21-01-10, 14:20
Das erklärt sich mir jetzt nicht und ist nicht nachzuvollziehen.
Ausserdem meine ich Leerzeichen hinter der Dateiendung!
Dann kann Windows den Typ auch nicht erkennen.

Ggf. gibts ein Problem bei der Versorgung des API's ?
Umbenennen geht auch mit dem REN-Befehl.

loeweadolf
21-01-10, 15:04
Das erklärt sich mir jetzt nicht und ist nicht nachzuvollziehen.
Ausserdem meine ich Leerzeichen hinter der Dateiendung!
Dann kann Windows den Typ auch nicht erkennen.

Ggf. gibts ein Problem bei der Versorgung des API's ?
Umbenennen geht auch mit dem REN-Befehl.


Ich habe jetzt mal alle Leerzeichen hinter der Endung (im Navigator) weggelöscht. Jetzt scheint es zu funktionieren !

Befehl REN war mir neu. Wenn es weitere Probleme gibt, werde ich mal damit ausprobieren.

Danke für die Unterstützung.

Fuerchau
21-01-10, 15:12
Also übergibt das Programm einen zu langen String an das API für das Umbenennen!

BenderD
21-01-10, 16:42
das API Qp0lRename... Dingens will null terminated Strings als Parameter; ich denke dass da vielleicht deine RPG Quelle nur fast exakt ist...
D*B

iSeries Information Center (http://publib.boulder.ibm.com/iseries/v5r2/ic2928/index.htm?info/apis/renamekp.htm)

Ich habe jetzt mal alle Leerzeichen hinter der Endung (im Navigator) weggelöscht. Jetzt scheint es zu funktionieren !

Befehl REN war mir neu. Wenn es weitere Probleme gibt, werde ich mal damit ausprobieren.

Danke für die Unterstützung.

loeweadolf
21-01-10, 16:58
Ich habe das Programm zum Umbenennen noch mal geprüft. Hier ist die Variable für den neuen Namen etwas zu lang, d.h., es bleiben hinten 3 Stellen hinter dem .txt leer.
Wenn ich dann anschl. manuell (Navigator) den Namen wieder zurückändere (für Testzwecke), dann ist es anscheinend erforderlich, dass ich die 3 Leerzeichen hinter der Datei-Endung wieder rausnehme (auch wenn ich diese nicht sehen kann).
(Nur dann kann Windows wohl erkennen, dass es sich um die Endung .txt handelt und entspr. Attribute setzen).

Zumindest klappt dann das CPYFRMSTMF.