HTML in BBCode umwandeln

Anfängerfragen zum Programmieren mit PureBasic.
Zrop
Beiträge: 2
Registriert: 22.12.2014 16:10

HTML in BBCode umwandeln

Beitrag von Zrop »

Hallo zusammen,

ich bin ganz neu hier. Ich versuche gerade ein kleines Programm zu schreiben mit welchem ich HTML-Code in BBCode umwandeln kann.
Ziel ist es, das ich den HTML-Code per CTRL-V in ein EditorGadget reinkopiere und dann den Text in BBcode umwandele. Soweit funktioniert das ganze auch schon, wenn auch bestimmt nicht elegant gelöst :-)
Mein Problem ist aber jetzt, das ich bei HTML-Tags, wo noch Parameter drin stehen, wie z.B. <div class="field-content"> nicht ersetzen kann.
Ich probiere das ganze bis jetzt mit ReplaceString umzusetzen, aber ich schaffe es nicht nach Wildcards zu suchen, also z.B. <div (.*?)>

Könnte mir da mal jemand ein bischen unter die Armee greifen ?

Schonmal Danke im vorraus.

Hier noch mein kleines Programm bis jetzt, es sind aber noch nicht alle Tags drin :-)

Code: Alles auswählen

Enumeration
  #btn_convert
  #edi_gad
EndEnumeration

Declare convert(EventType)

If OpenWindow(0, 0, 0, 600, 450, "HTML to BBCode", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  ButtonGadget(#btn_convert, 10,10,100,25,"Convert")
  EditorGadget(#edi_gad, 8, 50, 580, 390)
  
  SetActiveGadget(#edi_gad) ; EditGadget aktiv, Corsour befindet sich im EditGadget
  
  Repeat
    Event = WaitWindowEvent()

  Select Event
    Case #PB_Event_CloseWindow
      End

    Case #PB_Event_Gadget
      Select EventGadget()
          
        Case #btn_convert
          convert(EventGadget)
                  
EndSelect

  EndSelect
ForEver
EndIf

Procedure convert(EventGadget)
  editor$ = GetGadgetText(#edi_gad)
  neu$ = ReplaceString(editor$, "<h2>", "[size=18]", #PB_String_NoCase)
  SetGadgetText(#edi_gad, neu$)
  
  editor$ = GetGadgetText(#edi_gad)
  neu$ = ReplaceString(editor$, "</h2>", "[/size]", #PB_String_NoCase)
  SetGadgetText(#edi_gad, neu$)
  
  editor$ = GetGadgetText(#edi_gad)
  neu$ = ReplaceString(editor$, "<ul>", "[list]", #PB_String_NoCase)
  SetGadgetText(#edi_gad, neu$)
    
  editor$ = GetGadgetText(#edi_gad)
  neu$ = ReplaceString(editor$, "</ul>", "[/list]", #PB_String_NoCase)
  SetGadgetText(#edi_gad, neu$)

  
  editor$ = GetGadgetText(#edi_gad)
  neu$ = ReplaceString(editor$, "<li>", "[*]", #PB_String_NoCase)
  SetGadgetText(#edi_gad, neu$)
  
  editor$ = GetGadgetText(#edi_gad)
  neu$ = ReplaceString(editor$, "</li>", "", #PB_String_NoCase)
  SetGadgetText(#edi_gad, neu$)
  
EndProcedure
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: HTML in BBCode umwandeln

Beitrag von NicTheQuick »

Du scheinst RegularExpressions zu suchen. Damit ist sowas wie Wildcards möglich. Und noch viel mehr. Suche dazu einfach hier im Forum oder auch in der PB-Hilfe. Auch Wikipedia gibt interessante Einblicke.
Zrop
Beiträge: 2
Registriert: 22.12.2014 16:10

Re: HTML in BBCode umwandeln

Beitrag von Zrop »

ja, das scheint es zu sein was ich suche, vielen Dank :D
Mal gucken ob ich da einen Durchblick bekomme, scheint ja ein komplexes Thema zu sein, und das für einen Anfänger wie mich :?
Andesdaf
Moderator
Beiträge: 2673
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Re: HTML in BBCode umwandeln

Beitrag von Andesdaf »

Ich fand die Seite zum Verstehen ganz gut:
https://www.danielfett.de/internet-und- ... ausdruecke
Win11 x64 | PB 6.20
Antworten