Ich bin gerade dabei ein Basic Makro zu schreiben, dass in einem Base Datenbankformular bei Datensatzaufruf ein Bild anzeigt.
Dabei stehen Bildpfad und Bilddateiname in einzelnen Textfeldern und werden einer Prozedur als String übergeben und zusammengesetzt.
Nun möchte ich gerne überprüfen, ob der angegebene Bildpfad absolut ist, relativ zum Datenbank-Verzeichnis oder eine Web-URL ist und auf das Ergebnis entsprechend reagieren.
Dabei würde ich gerne überprüfen ob der String, der in einer Variable "ImagePath" steht, bspw. mit "./" oder "http://" beginnt.
Hier ein Schnippsel aus meinem Makro:
Code: Alles auswählen
Sub showImage( ImagePath As String, ImageFile As String )
on error goto errorHandler
Dim ImageURLcomplete As String 'komplette Bild URL
Dim DirPrefix As String 'Verzeichnis Präfix ("/" Unix; "\" Windows)
oDoc = thisComponent
'Verzeichnis Präfix feststellen und setzen ("/" Unix; "\" Windows)
If DirectoryNameoutofPath( convertfromurl( oDoc.Parent.URL ), chr(92) ) _
= convertfromurl( oDoc.Parent.URL ) Then
DirPrefix = "/"
Else
DirPrefix = chr(92)
end If
'Datenbankpfad speichern
dbURL = DirectoryNameoutofPath( convertfromurl( oDoc.Parent.URL ), DirPrefix )
'Prüfen ob übergebener Bildpfad relativ ist und absolut in Variable speichern
If ( ImagePath = "" ) OR ( ImagePath = "NULL" ) OR ( ImagePath = "./" ) OR ( ImagePath = "." & chr(92) ) Then
'Datei liegt im selben Verzeichnis ==> Datenbank Verzeichnis voranstellen
ImageURLcomplete = dbURL & DirPrefix & ImageFile
'###########################
'Abfrage mit regulärem Ausdruck
ElseIf ImagePath = '/^.\/*/' Then
'Dateipfad ist relativ ==> Datenbank Verzeichnis voranstellen
ImageURLcomplete = dbURL & DirPrefix & ImagePath & DirPrefix & ImageFile
'###########################
Else
'Dateipfad ist absolut
ImageURLcomplete = ImagePath & DirPrefix & ImageFile
End If
.
.
.
End Sub
Leider konnte ich dazu nichts brauchbares im Web finden und wäre dankbar für Hilfe bzw. Lösungsansätze.
Gruß,
der FrageMann