-
String und Leerzeichen
Hallo,
ich versuche gerade einen String bei dem ich an bestimmten stellen Werte einsetzen muss zu bearbeiten.(mit %scan und %replace kann ich mir die richtige Stelle suchen und dort etwas einfügen)
Ich habe jedoch das Problem das Leerzeichen die ich bei der Instanzierung angeben fehlen.
zb:
PHP-Code:
Dheader3 80A inz(' A*== Dateiname : + D Datum : + D ==')
Was in der Variable steht ist aber:
PHP-Code:
A*== Dateiname : Datum : ==
Was muss ich tun damit er mir keine Leerzeichen weglässt?
Gruß Martin
Edit: Der erste PHP Code wird komisch dargestellt...Der Sring der instanziert wird ist folgender:
PHP-Code:
A*== Dateiname : Datum : ==
Dateiname und Datum will ich über mein Programm einfügen. Die Instanzierung geht über 3 Zeilen weil der String insg. 80 Zeichen lang ist. dh von Keywordanfang bis 79 sind meine Zeichen bei Spalte 80 ein "+".
-
Moinsen,
poste mal bitte Deinen Programmcode, normalerweise dürften nicht automatisch irgendwelche Leerzeichen fehlen, sofern Du %replace benutzt...
Gruß
Maxx
Im folgenden Beispiel wird 'ABC' durch 'ZXYDE' ersetzt.:
Code:
D Text50 S 50A inz(*Blanks)
D MyString S 10A varying
D NewString S 10A varying
D Position S 5U 0
*---------------------------------------------------------
/free
Text50 = 'ABCxyABCvwABC123ABC50';
Dsply Text50;
MyString = 'ABC';
NewString = 'ZXYDE';
Position = 1;
DoW %Scan(MyString: Text50: Position) <> *Zeros;
Text50 = %Replace(NewString: Text50:
%Scan(MyString: Text50: Position): %Len(MyString));
Dsply Text50;
Enddo;
Dsply Text50;
*INLR = *ON;
/End-Free
oder per SQL
c/EXEC SQL Set :Text50 = Replace(:Text50, :MyString, :NewString)
C/END-EXEC
-
Mein Programmcode:
PHP-Code:
DHeader DS Dheader1 80A inz(' A* ') Dheader2U6 80A inz(' A*========================+ D ====================================+ D =========') Dheader3 80A inz(' A*== Dateiname : + D Datum : + D ==') Dheader4 80A inz(' A*==----------------------+ D ------------------------------------+ D -------==') Dheader5 80A inz(' A*== Autor : + D + D ==') Ddatnam S 10A inz('DateinameA') Ddate S 20A Dautor S 40A
C eval pos=%scan(':':header3) C eval pos=pos+3 C eval header3=%replace(datnam:header3:pos)
Die Beispiele hatte ich mir schon angeschaut und wie gesagt von der Sache her funktioniert das auch ganz gut nur werden mir halt die Leerzeichen "geklaut".
-
Ein '+' am Ende bedeutet, Fortsetzung in der nächsten Zeile ab dem 1. Zeichen <> Blank.
Ein '-' am Ende entfernt die Leerzeichen der Folgezeile NICHT !
-
Zitat von Fuerchau
Ein '+' am Ende bedeutet, Fortsetzung in der nächsten Zeile ab dem 1. Zeichen <> Blank.
Ein '-' am Ende entfernt die Leerzeichen der Folgezeile NICHT !
Ah ok vielen Dank!
Gruß Martin
Similar Threads
-
By e_sichert in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 07-11-06, 15:25
-
By mott in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 09-10-06, 11:28
-
By edig in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 07-07-06, 10:51
-
By codierknecht in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 03-07-06, 15:25
-
By cheffe1008 in forum NEWSboard Programmierung
Antworten: 7
Letzter Beitrag: 16-05-06, 07:45
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