Gambas: Verschiedene kurze Beispielprogramme
Zurück zum Gambas-Inhaltsverzeichnis.
Konverter (Text zu HTML-Code)
BearbeitenDieses Programm verwandelt Text in Html-Zeichencode.
Sie Benötigen dazu:
- 1 Form
- 1 Button
- 1 Textlabel
- 2 Textboxen
Ergebnis AS String PUBLIC SUB Button1_Click() i AS Integer Ergebnis = "" 'Umwandlung vom "utf-8" Zeichensatz zum "ISO-8859-1" Zeichensatz Textbox2.Text = Conv$(Textbox1.Text, "utf-8", "ISO-8859-1") FOR i = 1 TO Len(Textbox2.Text) '"Len" gibt die Länge des übergebenen Strings zurück Ergebnis = Ergebnis & Chr$(38) & "#" & Asc( Textbox2.Text, i ) & ";" '"Asc" gibt den ASCII-Code des Zeichen an der angegebenen Stelle des Stings zurück 'Chr$(38) ergibt das & Zeichen, hier nur verwendet um mögliche 'Darstellungsprobleme im Browser zu vermeiden NEXT Textbox2.Text = Ergebnis END PUBLIC SUB TextBox1_Enter() Button1_Click END
So sieht es dann aus:
Youtube Downloader
BearbeitenErmöglicht das Runterladen von Youtubevideos anhand eines Youtubelinks. Die Komponenten gb.net,gb.net.curl,gb.desktop,gb.gui,gb.form sind notwendig.
Hier die Form
# Gambas Form File 2.0 { Form Form MoveScaled(0,0,38.5714,8.5714) Text = ("YoutubeDownloader") Border = Window.Fixed { TextBox1 TextBox MoveScaled(1,1,21,3) ToolTip = ("Here goes the link") Text = ("") } { PictureBox1 PictureBox MoveScaled(23,1,14.1429,7.1429) } { Button1 Button MoveScaled(1,5,21,3) ToolTip = ("click here if you are ready to download") Text = ("Download") } }
Hier der Quellcode
' Gambas class file CONST PICTURENAME AS String = "youtube.jpg" CONST YOUTUBE AS String = "http://www.youtube.com" PUBLIC SUB Form_Open() DIM pic AS Picture pic = Picture.Load(Application.Path & "/" & PICTURENAME) pic.Resize(100, 50) PictureBox1.Picture = pic Application.MainWindow.Icon = pic END PUBLIC SUB Button1_Click() getYoutubeFile(TextBox1.Text) END PUBLIC SUB PictureBox1_MouseDown() Desktop.Open(YOUTUBE) END ' Öffnet den Standardbrowser mit dem Video dessen ' Youtubeurl als Parameter übergeben wird PUBLIC SUB getYoutubeFile(url AS String) DIM contents AS String url = parseYoutube(url) IF url = NULL THEN Message.Error("Error: problems with parsing the page!") RETURN END IF Desktop.Open(url) END ' parsed eine Youtubeseite um den tatsächlichen Lageort des Videos zu finden PUBLIC FUNCTION parseYoutube(url AS String) AS String DIM contents AS String DIM tmp AS String DIM tmp2 AS String DIM tval AS String DIM id AS String ' seite laden contents = getFile(url) IF contents = NULL THEN RETURN NULL END IF ' tval tmp = String.InStr(contents, "\"t\": \"", 0) + String.Len("\"t\": \"") tmp2 = String.InStr(contents, "\", ", tmp) tval = String.Mid(contents, tmp, tmp2 - tmp) ' id tmp = String.InStr(url, "v=", 0) + String.Len("v=") id = String.Mid(url, tmp) RETURN "http://www.youtube.com/get_video?video_id=" & id & "&t=" & tval END ' Lädt eine Seite runter und gibt diese als String zurück PUBLIC FUNCTION getFile(url AS String) AS String DIM h AS HttpClient DIM buffer AS String buffer = NULL h = NEW HttpClient AS "h" h.URL = url h.Get() DO WHILE h.Status <> 0 WAIT 0.01 LOOP IF h.Status >= 0 THEN IF Lof(h) THEN READ #h, buffer, Lof(h) END IF END IF RETURN buffer END