Log(File.IsDirectory("C:\","Basic"))
Log(File.IsDirectory("C:\Basic",""))
Dim Result As List= File.ListFiles("C:\")
Dim EchteListe As List
EchteListe.Initialize
For Each Name As String In Result
If File.IsDirectory("C:\",Name)=False Then
EchteListe.Add(Name)
End If
Next
For Each Name As String In EchteListe
Log(Name)
Next
Auch ganz einfachIch wollte, dass ein Benutzer den Pfad zu den Bilder selbst definieren kann. Als Beispiel.
/storage/0815/DCIM/Bilder
Meine Überlegung wäre mittels einer Splitfunktion, die gibt es sicher, den String zu zerlegern
DAS IST KEIN B4A Code, aber so stelle ich es mir vor.
Dim Verz As String
Verz= /storage/0815/DCIM/Bilder
S()=Split(Verz,"/")
Verz=Left(Verz, Len(Verz)- Len( S(LastIdx))
If File.IsDirectory(Verz,S(LastIdx) Then
Log("Verzeichnis existiert")
Dim Verz As String
Verz= /storage/0815/DCIM/Bilder
If File.IsDirctory(Verz, "") Then Log("Verzeichnis existiert")
Log(File.IsDirectory("C:\","Basic"))
Log(File.IsDirectory("C:\Basic",""))
Dim Pfad as String= "C:\Basic\BildProject\Img\Foto.jpg"
Dim EineEbeneHoeher as String =File.GetFileParent(Pfad)
Dim NurDerLetzteTeil as String= File.GetName(Pfad)
Log(EineEbeneHoeher)
Log(NurDerLetzteTeil)
C:\Basic\BildProject\Img
Foto.jpg
Dim Pfad as String= "C:\Basic\BildProject\Img\Foto.jpg"
Do While Pfad.Length>3
log(File.GetName(Pfad))
Pfad=File.GetFileParent(Pfad)
Loop
Foto.jpg
Img
BildProject
Basic
Dies hat mit "Namespaces" (Namensraeume) und das verhindern von "Namespace pollution" (Namensraum Verschmutzung) zu tun.Ich dachte, ich können nun von allen weiteren Modulen auf diese Variable zugreifen können.
Ich war der Annahme, dass in einem weiteren Modul Log(Verzeichnis)
funktioniert. Muss ich wirklich mit Log(main.Verzeichnis)
auf die Variable zugreifen?
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("Titel")
rp.CheckAndRequest(rp.PERMISSION_WRITE_EXTERNAL_STORAGE)
Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
If Result = True Then Verzeichnis = File.DirRootExternal
Sub btnSpeichern_Click
MsgboxAsync( "Das ausgewählte Bild wurde zum aktuellen Eintrag hinzugefügt.","Speichern")
Wait For MsgBox_Result (Result As Int)
Activity.Finish
End Sub
Sub btnSave_Click
If File.IsDirectory (txtBild.Text , "") Then
File.WriteString(File.DirInternal,"Setup.txt",txtBild.text)
Main.Verzeichnis=txtBild.Text
Main.OK=True
xui.MsgboxAsync("Der neue Pfad wurde gespeichert","Erfolgreich")
Else
Main.OK=False
xui.MsgboxAsync("Ungültiges Verzeichnis","Bitte erneut versuchen")
End If
End Sub
Sub btnSave_Click
If File.IsDirectory (txtBild.Text , "") Then
File.WriteString(File.DirInternal,"Setup.txt",txtBild.text)
Main.Verzeichnis=txtBild.Text
Main.OK=True
xui.MsgboxAsync("Der neue Pfad wurde gespeichert","Erfolgreich")
Else
Main.OK=False
xui.MsgboxAsync("Ungültiges Verzeichnis","Bitte erneut versuchen")
End If
End Sub
Sub Globals
Public bmpFoto As B4XBitmap
Public FotoB, FotoH As Int
Private btndown, btnUp As Button
Private iv1, iv2, iv3, iv4, iv5, iv6, iv7, iv8 As B4XView
End Sub
For I=Bildnummer To Bildnummer +7
BNr=BNr+1
Bild=Dateiliste.Get(I)
Select BNr
Case 1
BildSetzen(Bild,iv1)
Case 2
BildSetzen(Bild,iv2)
...
End Select
Sub BildSetzen(Datei as String, ivx as B4XView)
Bildpara (Datei)
bmpFoto = LoadBitmapSample(Verzeichnis, Datei, FotoB, FotoH)
ivx.SetBitmap(bmpFoto)
ivx.Width = FotoB
ivx.Height = FotoH
ivx.Tag = Datei
End Sub
Sub btndown_Click
ChangeBildNummer 8
End Sub
Sub btnUp_Click
ChangeBildNummer -8
End Sub
Sub ChangeBildNummer(Richtung as INT)
Bildnummer =Bildnummer + Richtung
btnDown.Enabled=True
btnUp.Enabled=True
If Bildnummer <0 Then
Bildnummer=0
btnDown.Enabled=False
Else If BildNummer>MaxAnz-8 Then
BildNummer=MaxAnz-8
btnUp.Enabled=False
End If
Foto_oeffnen
End Sub
Sub ImageEvent_Click
Dim ivx as B4xView= Sender
gBild=ivx.Tag
StartActivity("Viewer")
End Sub
Sub btnSpeichern_Click
xui.MsgboxAsync( "Das ausgewählte Bild wurde zum aktuellen Eintrag hinzugefügt.","Speichern")
Activity.Finish
End Sub
Sub btnSpeichern_Click
MsgboxAsync( "Das ausgewählte Bild wurde zum aktuellen Eintrag hinzugefügt.","Speichern")
Wait For MsgBox_Result (Result As Int)
Activity.Finish
End Sub
Sub Button1_Click
...
Sub Button2_Click
....
Sub MeinButtonEvent_Click
Sub MeinButtonEvent_Click
Dim Btn As Button =Sender
log(Btn.Text)
Wieder was gelernt. Das ändert natürlich alles.Wait For MsgBox_Result (Result As Int)
Neinnein, das kannst Du machen wie Du es für sinnvoll hältst. Deine Argumente sind ja sinnvoll. Ich wollte dir nur zeigen, dass das auch geht
Wieso geklaut, Ich habs Dir doch geschicktIch habe so was das 1. Mal mit den Buttons zum Drehen des Bildes verwendet. Hatte ich im Beispiel von Klaus gefunden. (Also geklaut).
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?