[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte

Hybrid View

  1. #1
    Registriert seit
    Jan 2013
    Beiträge
    6
    Hallo Robi,

    danke für Deine Antwort.

    Was ich aber meinte ist folgendes:

    Ich kann im Programm, intern, eine Datenstruktur mit den 5 Textfeldern hinterlegen.

    Hier wird dann aber gnadenlos getrennt, der Text wird abgeschnitten.

    Das möchte ich aber so nicht.

  2. #2
    Registriert seit
    Jun 2001
    Beiträge
    2.044
    Entweder hab ich dich noch nicht verstanden oder du hast meine Lösung noch nicht ausprobiert.

    1 Textfeld 250 Byte,
    Anzeige: 5 Zeilen a 51 Byte,
    Eingabe: geschriebenes Wort geht bis 51, 101, 151, 201
    Ausgabe (auch am BS) Wort in neuer Zeile

    Robi
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  3. #3
    Registriert seit
    Jun 2001
    Beiträge
    2.044
    Oder hast du gar keinen Bildschirm?
    dann mußt du, wenn %substr(textfeld250: 51:1 <> ' ')
    bei dem Blank davor trennen.
    Das mußt du programmieren
    Robi
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  4. #4
    Registriert seit
    Jan 2013
    Beiträge
    6
    Keine Ausgabe im BS, sondern nur eine interne Lösung in einem Programm ist gemeint.

    Panther

  5. #5
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Hilft Dir vielleicht der folgende Link weiter:
    Wrapping Free Form Text

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  6. #6
    Registriert seit
    Jan 2013
    Beiträge
    6
    Hallo B.Hauser,

    danke für die Antwort. Leider hat mir das nicht weitergeholfen.

    Robi hat schon richtig geantwortet:

    Oder hast du gar keinen Bildschirm?
    dann mußt du, wenn %substr(textfeld250: 51:1 <> ' ')
    bei dem Blank davor trennen.
    Das mußt du programmieren
    Robi
    Allerdings frage ich mich, wie ich das mit den 5 Textfeldern lösen soll.

    Panther

  7. #7
    Registriert seit
    Jun 2001
    Beiträge
    2.044
    Schätze wir beide werden uns heute nicht mehr einig !
    Der link von Birgitta ist doch super.
    Damit geht das, (was ich glaube das du willst)

    Robi
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  8. #8
    Registriert seit
    Jan 2012
    Beiträge
    1.199
    Hallo Panther,

    hast du dir den Sourcecode des WrapText-Programms (Link von Birgitta) mal angesehen? Vielleicht ist dir unklar, wie man das Programm verwenden kann. Aus meiner Sicht ist das nach folgendem Prinzip möglich:

    Also, du hast 1 großes Textfeld mit 250 Zeichen Länge:
    D text S 250A

    Als Ergebnis möchtest du den Text in 5 Textfelder von z.B. 78 Zeichen Länge haben, richtig?
    D text1 S 78A
    D text2 S 78A
    D text3 S 78A
    D text4 S 78A
    D text5 S 78A

    Dann musst du dir nur ein großes Ergebnistextfeld definieren (So groß wie alle gewünschten Ergebnistextfelder zusammen (also 5 mal 78):
    tempText S 390A

    Dann rufst du die WrapText Procedure auf:
    tempText = WrapText(text:78);

    Jetzt musst du nur noch dein temporäres Ergebnis in deine 5 gewünschten Felder übertragen:
    text1 = %subst(tempText:1:78);
    text2 = %subst(tempText:79:78);
    text3 = %subst(tempText:157:78);
    text4 = %subst(tempText:235:78);
    text5 = %subst(tempText:313:78);

    Fertig!

    Die andere im Link beschriebene Möglichkeit, die Procedure WrapText für eine UDTF zu nutzen, geht natürlich auch. Aber so müsste es rein im RPG funktionieren, denke ich.

    Gruß,
    Dieter

  9. #9
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Wenn man sich eine Datenstruktur mit den 5 (oder wieviel auch immer) Text-Feldern als Unterfelder (mit fixer Länge definiert), braucht man noch nicht einmal einen %SUBST!

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  10. #10
    Registriert seit
    Jan 2013
    Beiträge
    6
    Hallo dschroeder,

    vielen Dank für die Antwort.

    Das ist fast genau das, was ich benötige.

    Mir fehlt hier aber etwas wichtiges; ich Zitiere mich einmal :

    Ich habe ein Textfeld von 250 Zeichen. Dieses möchte ich sinnvoll, also leserlich in 5 Textfelder aufteilen.

    Mit Sinnvoll meine ich das Wörter nicht getrennt ( abgehackt ) werden.
    Panther

  11. #11
    Registriert seit
    Jan 2003
    Beiträge
    759
    Code:
    D $Von            S             10I 0                                    
    D $Bis            S             10I 0                                    
    D $String         S            250A                                      
    D $I              S             10I 0                                    
    D  $Fld           S             50A   DIM(5) INZ                         
     /Free                                                                   
             $String =                                                       
            'Lorem ipsum dolor sit amet, consectetuer adipiscing elit, +     
             sed diam nonummy nibh euismod tincidunt ut laoreet dolore +     
             magna aliquam erat volutpat. Ut wisi enim ad minim veniam, +    
             quis nostrud exerci tation ullamcorper suscipit ex.';           
              $I   = 0;                                                    
              DoW $String <> *Blanks;                                      
              $Von = 1;                                                    
              $Bis = 51;                                                   
                  DoW %Subst($String:$Bis:1) <> *Blank;                    
                      $Bis -= 1;                                           
                  EndDo;                                                   
                  $I += 1;                                                 
                  $Fld($I)  = %Subst($String:$Von:$Bis-$Von);              
                  $String = %Trim(%Subst($String:$Bis));                   
              EndDo;                                                       
              *InLr = *On;                                                 
      /End-Free
    ...fehlt nur noch ein Monitor drumrum, falls mal keine Blanks zu finden sind

  12. #12
    Registriert seit
    Aug 2006
    Beiträge
    2.114
    Zitat Zitat von RobertMack Beitrag anzeigen
    [CODE]

    /Free
    $String =
    'Lorem ipsum dolor sit amet, consectetuer adipiscing elit, +
    sed diam nonummy nibh euismod tincidunt ut laoreet dolore +
    magna aliquam erat volutpat. Ut wisi enim ad minim veniam, +
    quis nostrud exerci tation ullamcorper suscipit ex.';
    Der Römer als solches würde jetzt nur Bahnhof verstehen.

    Interessant was es alles so gibt.

    GG

Similar Threads

  1. iSeries Navigator - Verbindung trennen
    By USDAVIS in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 19-01-12, 14:03
  2. SQL -- trennen von Vorname Nachname
    By cicero22 in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 14-10-05, 06:24
  3. Verbindung PC zu AS/400 trennen!
    By c_kinkel in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 15-07-05, 09:16
  4. SQL CLI Apis: Datenbankverindung trennen
    By sim in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 30-08-04, 07:30
  5. Mehrzeiliges Textfeld
    By JoergHamacher in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 24-08-04, 12:21

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •