Ordner herunterladen b4a

  • Antworten:19
  • OffenNicht stickyBentwortet
  • Forum-Beiträge: 745

31.01.2014, 17:30:59 via Website

Hey Leute, Hey Carsten ;)
Lange habe ich mich nicht mehr im Fragen-Forum eingetragen aber jetzt habe ich mal wieder eine Frage:
Wie kann ich einen kompletten Ordner(inkl. Inhalt) von ftp herunterladen? mit Ftp.downloadfile gehts schonmal nicht
Ich habe es schon mit ftp.list probiert: Problem: ich muss in der Schleife immer auf den Download_Completed sub warten und das ist bei Android nicht möglich :(
Grüße
Chris

— geändert am 31.01.2014, 17:42:30

Posts vor dem 22.12.2014 sind von dem Vorgänger dieses Accounts

Antworten
  • Forum-Beiträge: 745

31.01.2014, 17:59:13 via Website

Hallo Gertrud,
Wir sind im Entwicklerforum. Ich suche keine App die das bereits kann sondern ich will eine programmieren (mit b4a-siehe Titel).
freundliche Grüße
Chris

Posts vor dem 22.12.2014 sind von dem Vorgänger dieses Accounts

Antworten
  • Forum-Beiträge: 745

31.01.2014, 18:44:58 via Website

Kein Problem.
Gleichfalls!!!
Grüße
Chris

Posts vor dem 22.12.2014 sind von dem Vorgänger dieses Accounts

Antworten
  • Forum-Beiträge: 1.793

31.01.2014, 19:10:08 via Website

Du musst das rekursiv lösen (Pseudocode):
1Sub downloadFolder(String folder)
2Ftp.list(folder)
3End Sub

In ListCompleted
1If element ist nicht Verzeichnis/Folder/Dir Then
2Ftp.downloadFile(element)
3Else
4downloadFolder(element)
5End If

LG

— geändert am 31.01.2014, 19:10:23

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

Antworten
  • Forum-Beiträge: 33.139

31.01.2014, 19:18:34 via App

Hi,

Es gibt bei FTP keinen solchen Befehl, der komplette Ordner herunterladen lässt.

Du musst hier also ein bisschen was selbst machen. (Struktur lesen, Order ermitteln, Ordner lokal erzeugen, Files downloaden)

Wildcards zumindest kannst mit dieser Bibliothek hier benutzen:

http://www.basic4ppc.com/android/forum/threads/automated-ftp-library.26985/#content

Herzliche Grüße

Carsten

Ich komm' mir langsam vor wie jemand, der ich bin // #cäthe

Antworten
  • Forum-Beiträge: 745

31.01.2014, 19:58:25 via Website

Carsten M.
Hi,

Es gibt bei FTP keinen solchen Befehl, der komplette Ordner herunterladen lässt.

Du musst hier also ein bisschen was selbst machen. (Struktur lesen, Order ermitteln(existiert zu 100% auf dem Server), Ordner lokal erzeugen(kein Problem), Files downloaden(das ist das Problem))
denn mit
for i = 0 to files.length
ftp.download(file)
next
funktioniert das nicht, da der Download erst fertig-gestellt werden muss.

Wildcards zumindest kannst mit dieser Bibliothek hier benutzen:
Ich glaube das in den Screenshots ist das was ich will-Dumm nur, dass kein Beispielprojekt beiliegt :(
http://www.basic4ppc.com/android/forum/threads/automated-ftp-library.26985/#content

Herzliche Grüße

Carsten
Grüße Chris

Posts vor dem 22.12.2014 sind von dem Vorgänger dieses Accounts

Antworten
  • Forum-Beiträge: 33.139

31.01.2014, 20:20:56 via App

Die Library, die Du verlinkt hast, macht das mit einem Array von Files.

Die Bibliothek, die ich Dir nannte, ist für Dich sinnvoller, weil sie Wildcards unterstützt.

Herzliche Grüße

Carsten

— geändert am 31.01.2014, 20:22:03

Ich komm' mir langsam vor wie jemand, der ich bin // #cäthe

Antworten
  • Forum-Beiträge: 745

01.02.2014, 20:36:28 via Website

Danke Carsten

Posts vor dem 22.12.2014 sind von dem Vorgänger dieses Accounts

Antworten
  • Forum-Beiträge: 33.139

02.02.2014, 18:28:44 via Website

Hi,

wo ist denn Dein Thread von heute hin bezüglich der ImageView und dem Bitmap...!?

Ich wollte antworten - aber der Thread ist weg. :blink:

Herzliche Grüße

Carsten

Ich komm' mir langsam vor wie jemand, der ich bin // #cäthe

P-T

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.168

02.02.2014, 18:51:12 via Website

Carsten M.

Ich wollte antworten - aber der Thread ist weg. :blink:
ich auch, wurde er von Admins gelöscht?
Wenn ja frage ich mich warum.

LG Pascal //It's not a bug, it's a feature. :) ;)

P-T

Antworten
  • Forum-Beiträge: 745

02.02.2014, 19:52:43 via Website

Carsten M.
Hi,

wo ist denn Dein Thread von heute hin bezüglich der ImageView und dem Bitmap...!?

Ich wollte antworten - aber der Thread ist weg. :blink:

Herzliche Grüße

Carsten
Ich frage mich auch...
Ich schrieb Andy sofort eine Nachricht aber er ignorierte sie...
Vielen Dank dafür dass ihr geantwortet hättet. Ich schätze das sehr!
Ich hab aber noch den Text:

------------------------------------------Deleted Threat-------------------------------------------
Hey,

Mal wieder ein Problem: Ich versuche ein individuelles Bild voll in einem Imageview anzuzeigen. Ohne, dass das Formart zerstört wird.
Bei meinem Programmierprogramm handelt es sich um: B4A
Hier mein Beispiel-Code, der nicht funktioniert:
1Dim im As ImageView
2 im.Initialize("Im")
3 Dim b As Bitmap
4 b.Initialize(File.DirInternal,"mypic.png")
5 Dim bw,bh,iw,ih,mh,mw As Int
6 bw = b.width
7 bh = b.height
8 ih=450dip/1dip
9 iw = 200dip/1dip
10((Hier seht ihr was mein Maximum des Imageviews ist: Height 450dip und widht 200dip
11 If bw > iw Then
12 mw = bw - iw
13 bw = bw - mw
14 bh = bh - mw
15 End If
16 If bh > ih Then
17 mh = bh - ih
18 bh = bh - mh
19 bw = bw - mh
20 End If
21 im.Color = Colors.White
22 im.Bitmap = LoadBitmapSample(File.DirInternal &"/scr",scrcounter & ".png",bw,bh)
23 im.Gravity = Gravity.CENTER
24 HorizontalScrollView1.Panel.AddView(im,0, 0, 300dip,450dip)

Es wäre echt wunderbar, wenn mir jemand schnell helfen könnte.
Beste Grüße
Chris

Edit:
Verlauf
Pascal: im.Bitmap = LoadBitmapSample(File.DirInternal &"/scr",scrcounter & ".png",bw,bh)
Funktioniert das so? bzw. schreibt man statt dem '&' kein '+' für Strings?

Zusätzlich wissen wir nicht genau was für ein Problem du jetzt hast.
Ich: ja das geht so.
Mein Problem ist, dass der Code nicht funktioniert. Das Bild ist immer abgeschnitten, was nicht sein dürfte
Grüße

— geändert am 02.02.2014, 20:01:17

Posts vor dem 22.12.2014 sind von dem Vorgänger dieses Accounts

Antworten
  • Forum-Beiträge: 33.139

02.02.2014, 20:06:48 via Website

Hi Chris,

Du musst die Höhe und Breite des Bitmaps auslesen und danach im gleichen Seitenverhältnis die Höhe und Breite der ImageView definieren.

Beispiel:

1dim bime as bitmap
2bime.Initialize(File.DirInternal &"/scr",scrcounter & ".png")
3 Dim verhaeltnis As Float
4 verhaeltnis = bime.Width / bime.height
5 im.Gravity = Gravity.fill
6 If verhaeltnis > 1 Then
7 im.SetLayout(0,0,100%x,100%x / verhaeltnis)
8 Else
9 im.setlayout(0,0,100%x * verhaeltnis,75%x)
10 End If
11 im.Bitmap = LoadBitmapSample(File.DirInternal &"/scr",scrcounter & ".png",im.width, im.height)

So wird jedes Bild - egal ob Hochformat oder Quer - in seinen richtigen Dimensionen dargestellt.

Herzliche Grüße
Carsten

— geändert am 02.02.2014, 20:08:37

Ich komm' mir langsam vor wie jemand, der ich bin // #cäthe

Antworten
  • Forum-Beiträge: 745

04.02.2014, 17:13:32 via Website

Carsten M.
Hi Chris,

Du musst die Höhe und Breite des Bitmaps auslesen und danach im gleichen Seitenverhältnis die Höhe und Breite der ImageView definieren.

Beispiel:

1dim bime as bitmap
2bime.Initialize(File.DirInternal &"/scr",scrcounter & ".png")
3 Dim verhaeltnis As Float
4 verhaeltnis = bime.Width / bime.height
5 im.Gravity = Gravity.fill
6 If verhaeltnis > 1 Then
7 im.SetLayout(0,0,100%x,100%x / verhaeltnis)
8 Else
9 im.setlayout(0,0,100%x * verhaeltnis,75%x)
10 End If
11 im.Bitmap = LoadBitmapSample(File.DirInternal &"/scr",scrcounter & ".png",im.width, im.height)

So wird jedes Bild - egal ob Hochformat oder Quer - in seinen richtigen Dimensionen dargestellt.

Herzliche Grüße
Carsten
Hallo Carsten,
Vielen Dank. Ich habe den Code gerade ausprobiert... Das Problem ist: Du scheinst nicht direkt verstanden zu haben, was ich meine....
Ich habe festgelegte maase des imageviews und das bild soll nur angepasst werden. (Breite 300dip,Höhe 450dip). Ist das bild zum Beispiel 50x40 dann soll eine Seite voll angepasst werden.(Eigentlich die Center Funktion nur ohne, dass bei zu großen Bildern nur ein Teill des Bildes angezeigt wird) bei unserem Beispiel-bild wäre das endbild im imageview dann 300dip(volle Breite) x X(das müssen wir berechnen) Bei einem Beispiel-Bild von 300dipx500 wäre dann das Ergebnis 300dipxX.
Ich hoffe du konntest mein Wollen verstehen
Grüße

Posts vor dem 22.12.2014 sind von dem Vorgänger dieses Accounts

Antworten
  • Forum-Beiträge: 33.139

04.02.2014, 18:35:29 via App

Hi Chris,

Ich weiß nicht, ob ich verstehe, was Du willst.
Ich verstehe das so, dass Du eine ImageView in fester Größe hast und darin ein Bild im Hochformat in der Höhe der ImageView anpassen willst und ein Bild im Querformat entsprechend der Breite der ImageView anpassen möchtest.

Dadurch ergibt sich, dass ein "leerer" Raum in der ImageView entstehen würde. Eine ImageView kann aber - zumindest soweit ich das mit Basic4Android bisher erkennen kann - nur vollflächig nutzen, Du kannst da keine Teile frei lassen.

Ergo musst Du das Seitenverhältnis der ImageView an das Seitenverhältnis des anzuzeigenden Bildes anpassen. Und das kannst Du so machen, wie ich es geschildert habe.

Inwiefern ist das nicht das, was Du möchtest?

Herzliche Grüße

Carsten

Ich komm' mir langsam vor wie jemand, der ich bin // #cäthe

Antworten
  • Forum-Beiträge: 745

04.02.2014, 20:50:45 via Website

Carsten M.

Dadurch ergibt sich, dass ein "leerer" Raum in der ImageView entstehen würde. Eine ImageView kann aber - zumindest soweit ich das mit Basic4Android bisher erkennen kann - nur vollflächig nutzen, Du kannst da keine Teile frei lassen.
Hallo Carsten,
Ja -Soweit ich aus deinen Erklärungen deuten konnte, hast du es richtig verstanden.
Meinen Erfahrungen nach geht das mit dem leeren Platz allerdings schon...Es ging zum Beispiel mit meinem Code-Nur hab ich das Bild nie ganz drauf bekommen.
Mit deinem Code gibt es Inkompatibilitäten.
Mir würde es eher helfen, wenn du mir beim Berichtigen meines eigenen Codes helfen würdest...Denn in der Theorie würde dieser funktionieren. Auch wenn du glaubst, dass es mit der Bitmap nicht geht, so korrigiere den Code bitte trotzdem.(Ich hab schon zig mal überprüft, finde aber keinen Fehler) Das mit der Bitmap kann ich dann selber beheben ;).
Der Code sollte dies machen: 1. Überprüfen ob das Bild in die max. Breite passt. Wenn nicht dann auf max. Breite setzen und Bildhöhe berechnen. 2. Wenn dann die Breite zu hoch ist, dann soll er die Breite anpassen und auf max. Höhe gehen. vlt. bin ich mit dip und so durcheinander gekommen :/
Wäre nett wenn du das machen würdest.
Grüße
Chris

— geändert am 05.02.2014, 14:25:06

Posts vor dem 22.12.2014 sind von dem Vorgänger dieses Accounts

Antworten
  • Forum-Beiträge: 33.139

05.02.2014, 17:38:41 via Website

Hi,

Mit deinem Code gibt es Inkompatibilitäten.
Was für "Inkompatibilitäten"?

Programmieren musst Du schon noch selbst. Ich kann Dir nur Lösungen aufzeigen...

Mir würde es eher helfen, wenn du mir beim Berichtigen meines eigenen Codes helfen würdest...
Der ist mir zu kryptisch... 450dip/1dip = was soll das?

Denn in der Theorie würde dieser funktionieren.
Das tut er aber nicht.

Der Code sollte dies machen: 1. Überprüfen ob das Bild in die max. Breite passt. Wenn nicht dann auf max. Breite setzen und Bildhöhe berechnen. 2. Wenn dann die Breite zu hoch ist, dann soll er die Breite anpassen und auf max. Höhe gehen. vlt. bin ich mit dip und so durcheinander gekommen :/
Ich habe dir geschildert, wie das Problem zu lösen ist.

Ich weiß jetzt ehrlich gesagt nicht, was ich Dir noch dazu sagen soll....

Herzliche Grüße

Carsten

Ich komm' mir langsam vor wie jemand, der ich bin // #cäthe

Antworten
  • Forum-Beiträge: 745

06.02.2014, 18:22:42 via Website

Carsten M.
Hi,

Mit deinem Code gibt es Inkompatibilitäten.
Was für "Inkompatibilitäten"?
Mit Setlayout. Ich habe mit Absicht das nicht vertieft, da es die Situation nur unnötig erschwert.

Mir würde es eher helfen, wenn du mir beim Berichtigen meines eigenen Codes helfen würdest...
Der ist mir zu kryptisch... 450dip/1dip = was soll das?
Habe ich auch gerade bemerkt ;)
Denn in der Theorie würde dieser funktionieren.
Das tut er aber nicht.
Theorie kann nicht funktionieren. Ich habe den Fehler. Du kennst sicherlich Gimp. Da gibt es die Bild skalieren Funktion... Damit habe ich es getestet und bemerkt, dass manchmal 1 pixel bei breite und höhe gleichzeitig dazu kommt und manchmal erst beim 2 ten mal... Wie kann man das denn berechnen? o.ô. Wenn du nicht verstehst was ich meine, dann kann ich es dir mal mit TeamViewer zeigen...
Der Code sollte dies machen: 1. Überprüfen ob das Bild in die max. Breite passt. Wenn nicht dann auf max. Breite setzen und Bildhöhe berechnen. 2. Wenn dann die Breite zu hoch ist, dann soll er die Breite anpassen und auf max. Höhe gehen. vlt. bin ich mit dip und so durcheinander gekommen :/
Ich habe dir geschildert, wie das Problem zu lösen ist.

Ich weiß jetzt ehrlich gesagt nicht, was ich Dir noch dazu sagen soll....

Herzliche Grüße

Carsten
Grüße
Chris

Posts vor dem 22.12.2014 sind von dem Vorgänger dieses Accounts

Antworten
  • Forum-Beiträge: 33.139

06.02.2014, 20:12:49 via App

Hi,

Beim nächsten Mal bitte richtig zitieren. Ich habe keine Lust und keine Zeit, erst mühsam Deine von meinen Worten zu extrahieren...

Leider weiß ich immer noch nicht, was ich Dir noch erklären soll. Ich habe Dir die Lösung genannt. Daran ändert auch Deine wie auch immer geartete Erkenntnis beim Basteln mit Gimp nichts...

Herzliche Grüße

Carsten

Ich komm' mir langsam vor wie jemand, der ich bin // #cäthe

Antworten

Empfohlene Artikel