Mehrere Zeilen in einen String packen und teilen

14. Januar 2020 06:12

Hallo MSDynamics Community,

ich habe nun folgendes Problem. Ich habe in einigen Zeilen einige HTML Tags die dann bei Zeile 1 beginnen und bei Zeile 2 enden. Ich hatte nun vor,
mehrere, wenn nicht sogar alle Zeilen in einen String zu packen und den dann erneut in einer Länge von 125 oder 250 zu teilen. Das ganze ist ein Report und keine Codeunit.

Beispiel:

1.Zeile : <p>Microsoft Dynamics is a line of enterprise resource planning (ERP)</p><p
2.Zeile : >and customer relationship management (CRM) software applications.<
3.Zeile : p>Microsoft markets Dynamics applications through a Network</p>

Lösche ich die HTML Tags

1.Zeile : Microsoft Dynamics is a line of enterprise resource planning (ERP) <p
2.Zeile : >and customer relationship management (CRM) software applications.<
3.Zeile : p>Microsoft markets Dynamics applications through a Network

Die HTML Tags habe ich mit Hilfe von Regular Expressions entfernt, leider bleiben an einigen Zeilen noch die <p bestehen und um dieses Problem zu lösen,
würde mein oben genanntes Problem wahrscheinlich alles lösen.

Vielen Dank schonmal für Eure Hilfe :)

LG

Re: Mehrere Zeilen in einen String packen und teilen

14. Januar 2020 08:28

Hallo,

Textvariablen dürfen in NAV2013.. bzw. BC bis zu 2 GB groß werden. Daher ist es sicherlich kein Problem deinen Text in einer Textvariable zusammenzufassen.

Gruß Fiddi

Re: Mehrere Zeilen in einen String packen und teilen

14. Januar 2020 08:41

Ja, aber wie genau packe ich denn alles in einen String um diesen dann in einer Länge von 250 zu teilen?

Gruß

Re: Mehrere Zeilen in einen String packen und teilen

14. Januar 2020 08:58

Hallo,

warum möchtest du den String denn bei 125 oder 250 teilen? Zum Speichern in einer Tabelle?
Eine einfache Lösung könnte sein (für nicht allzu große Texte)
Code:
while strlen(Text) >0 do BEGIN
  i+=1;
  TextArr[i] := COPYSTR(Text,1,250);
  if Text <>'' then
    Text= copystr(Text,251); 
END


Gruß Fiddi

Re: Mehrere Zeilen in einen String packen und teilen

14. Januar 2020 09:01

fiddi hat geschrieben:Hallo,

warum möchtest du den String denn bei 125 oder 250 teilen? Zum Speichern in einer Tabelle?
Eine einfache Lösung könnte sein (für nicht allzu große Texte)
Code:
while strlen(Text) >0 do BEGIN
  i+=1;
  TextArr[i] := COPYSTR(Text,1,250);
  if Text <>'' then
    Text= copystr(Text,251); 
END


Gruß Fiddi


Genau.

Will alle Zeilen erst in einen großen String packen, alle tags entfernen damit nur der Text zu sehen ist und am Ende den großen String in einer Länge von 250 Satzzeichen teilen.

Re: Mehrere Zeilen in einen String packen und teilen

14. Januar 2020 09:09

Hallo xenomode,

bitte verwende keine Vollzitate. Kopiere den Text den du zitieren möchtest und platziere ihn in einem Quote-Tag.

Gruß Fiddi