Gambas: Verschiedene kurze Beispielprogramme
Erscheinungsbild
Zurück zum Gambas-Inhaltsverzeichnis.
Konverter (Text zu HTML-Code)
[Bearbeiten]Dieses 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
[Bearbeiten]Ermö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
