-
rename() und IFS
Hallo Forum,
Ich möchte im IFS eine Datei umbenennen.
Mit der C-funktion rename(), ist das leider nicht möglich wie ich im API-Handbuch nachlesen konnte
#include Qp0lstdi.h fehlt
.
Nun meine Frage wie binde ich diesen Header in ein RPG Programm ein
-
Hallo,
versuche es doch mal mit folgendem Prototyp:
D* int Qp0lRenameKeep(const char *old, const char *new)
D*----------------------------------------------------------------
D Rename PR 10I 0 ExtProc('Qp0lRenameKeep')
D old * Value options(*string)
D new * Value options(*string)
Gruß,
KM
-
Hallo KM,
Danke erst mal ,
das mit Qp0lRenameKeep() ist mir schon bekannt, aber leider bekomme ich mit dieser Funktion einen Fehler beim binden.
Obwohl ich QC2LE eingebunden habe. 
Die Frage ist nun vielmehr genereller Natur -
Wie binde ich eine C-Headerdatei in RPG ein ?
ist dies überhaupt möglich ?
und wenn ... wie ?
-
Hallo,
C Prototypen kann man in RPG nicht einbinden, aber C Funktionen, wozu man dann einen Prototyp in RPG braucht: Selbigen kann man auf mehreren Wegen bekommen:
- in QSYSINC nachsehen, ob da einer ist
- den C Prototyp in RPG übersetzen
- auf der Freeware Seite von Thomas Raddatz (tools400.de) nachsehen
am einfachsten und besten ist meist das dritte (aller guten Dinge sind 3)
beim binden muss dann natürlich der Import auflösbar sein, falls das nicht der Fall ist,
- könnte man sich vertippt haben (Groß/Kleinschreibung, Hochkomma vergessen etc.
- QC2LE vergessen haben
- Serviceprogramm ist nicht in QC2LE drin
ansonsten müsste der rename auch über einen Qshell Command möglich sein, den man über system oder QCMDEXC oder QSH auch aus RPG übergeben kann.
mfg
Dieter Bender
 Zitat von fabax
Hallo KM,
Danke erst mal ,
das mit Qp0lRenameKeep() ist mir schon bekannt, aber leider bekomme ich mit dieser Funktion einen Fehler beim binden.
Obwohl ich QC2LE eingebunden habe.
Die Frage ist nun vielmehr genereller Natur -
Wie binde ich eine C-Headerdatei in RPG ein ?
ist dies überhaupt möglich ?
und wenn ... wie ?
-
Hallo fabax !
Welcher Fehler wird denn gemeldet (siehe erstellte Spooldatei)?
Für welches Release (VRM) wandelst du das Programm?
Gruß
Jürgen
-
 Zitat von Pikachu
Hallo fabax !
Welcher Fehler wird denn gemeldet (siehe erstellte Spooldatei)?
Für welches Release (VRM) wandelst du das Programm?
Gruß
Jürgen
Fehler, die beim Binden entstehen kann man nicht aus der Umwandlungs-Liste entnehmen.
Sehr oft hilft, das Programm interaktiv umzuwandeln und dann einen Blick ins Joblog werfen. Das ist zwar auch nicht das gelbe vom Ei hilft aber meistens weiter.
Birgitta
-
Hallo nochmal,
Ergänzung:
- Qp0lRenameKeep() erfordert das binden des SRVPGMS QP0LLIB1, das ist in QC2LE nicht drin
- BNDDIR QUSAPIBD täte es wohl auch
- die Qshell Funktion heißt mv altName neuName
mfg
Dieter Bender
 Zitat von fabax
Hallo KM,
Danke erst mal ,
das mit Qp0lRenameKeep() ist mir schon bekannt, aber leider bekomme ich mit dieser Funktion einen Fehler beim binden.
Obwohl ich QC2LE eingebunden habe.
Die Frage ist nun vielmehr genereller Natur -
Wie binde ich eine C-Headerdatei in RPG ein ?
ist dies überhaupt möglich ?
und wenn ... wie ?
-
Hallo,
die Prozedur Qp0lRenameKeep() hat überhaupt nichts mit QC2LE zu tun. Wenn der Prototyp so definiert ist, wie bereits weiter oben angegeben, dann wird auch QP0LLIB1 automatisch gebunden und der "rename" funktioniert auch. Irgendwelche überflüssige Binderverzeichnisse sind da nicht nötig. Dein Binde-Fehler muß eine andere Ursache haben.
Gruß,
KM
-
@KM: bei mir wird Qp0lRenameKeep() auch ohne Bindeangaben gebunden, aber ich frage mich schon, ob das eine dokumentierte oder undokumentierte Eigenschaft ist. Bei letzterem könnte es schon Release Stände geben wo eine Bindeangabe erforderlich ist.
mfg
Dieter Bender
 Zitat von KM
Hallo,
die Prozedur Qp0lRenameKeep() hat überhaupt nichts mit QC2LE zu tun. Wenn der Prototyp so definiert ist, wie bereits weiter oben angegeben, dann wird auch QP0LLIB1 automatisch gebunden und der "rename" funktioniert auch. Irgendwelche überflüssige Binderverzeichnisse sind da nicht nötig. Dein Binde-Fehler muß eine andere Ursache haben.
Gruß,
KM
-
 Zitat von fabax
Hallo Forum,
Ich möchte im IFS eine Datei umbenennen.
Mit der C-funktion rename(), ist das leider nicht möglich wie ich im API-Handbuch nachlesen konnte .
Nun meine Frage wie binde ich diesen Header in ein RPG Programm ein

Auf der Zielmaschine läuft Version V5.2
Ich habe mir inzwischen mit Rename Object (REN) beholfen. Über system() rufe ich dann den zusammengebauten String ab. Danke an BenderD für den Tip.
REN OBJ('\Test\alte_datei) NEWOBJ('neue_datei.txt')
Wichtig dabei ist, das in OBJ die alte Datei mit Pfad angeben werden muss. bei NEWOBJ aber nur die neue Datei stehen darf !
Similar Threads
-
By eps330 in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 26-11-07, 12:24
-
By kroehn in forum NEWSboard Windows
Antworten: 5
Letzter Beitrag: 08-11-06, 19:36
-
By bode in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 30-10-06, 11:10
-
By jo400 in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 21-10-06, 17:57
-
By y-tom in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 29-05-06, 14:31
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks