Aktuelle Zeit: 30.05.2020 23:47

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: OpenFileRequester (Anzahl ausgewählter Dateien)
BeitragVerfasst: 04.01.2020 09:22 
Offline
Benutzeravatar

Registriert: 29.08.2005 13:56
Wohnort: Köln
Hallo zusammen...
Wahrscheinlich sehe ich wieder einmal den Wald vor lauter Bäumen nicht aber, wie kann ich bei "#PB_Requester_MultiSelection" herausfinden,
wieviele Dateien geöffnet werden sollen bevor ich mit "NextSelectedFileName()" die Aufzählung starte?

Code:
selectedFiles.s = OpenFileRequester("Dateien hinzufügen", "", "*.*", 0, #PB_Requester_MultiSelection)
; hier brauche ich die Anzahl der ausgewählten Dateien
While selectedFiles
  ...
Wend


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: OpenFileRequester (Anzahl ausgewählter Dateien)
BeitragVerfasst: 04.01.2020 11:40 
Offline

Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge
WARUM ?

Das macht keinen Sinn.

Du benötigst: NextSelectedFileName()

Es ist egal ob vor der While-Schleife oder danach.
In jedem Fall müsstest du zählen und NextSelectedFileName() arbeitet recht flott.

Du zählst hierbei einfach innerhalb der Schleife.

Code:
While FileName$
  FileName$ = NextSelectedFileName()
  Counter + 1
Wend

Debug Counter


Sei froh das du dir nicht die dahinterstehende Windows API antun musst.

Ansonsten bastel dir einen Dateiauswahldialog mit den Explorer - Gadgets.

_________________
Betriebssysteme: MX Linux 19 / Windows 10 / Mac OS 10.15.2 / Android 7.0 ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: OpenFileRequester (Anzahl ausgewählter Dateien)
BeitragVerfasst: 04.01.2020 12:23 
Offline
Benutzeravatar

Registriert: 29.08.2005 13:56
Wohnort: Köln
Warum: ...weil ich eine Prozentanzeige, welche mir angibt "wieviele" Dateien bereits geöffnet wurden mitlaufen lassen möchte.

Einen eigenen Dialog zu basteln wäre meine zweite Wahl gewesen...dachte, es gibt vielleicht eine "einfachere" Lösung.
Danke :allright:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: OpenFileRequester (Anzahl ausgewählter Dateien)
BeitragVerfasst: 04.01.2020 13:34 
Offline

Registriert: 29.10.2011 16:54
Hallo,

eventuell einfach alle Dateinamen in eine Linkedlist einlesen. Dann ist die Anzahl bekannt.
Dann die Dateien der LinkedList bearbeiten

Code:
NewList FileNames.s()

While FileName$
  AddElement(FileNames())
  FileNames()= NextSelectedFileName()
  Counter + 1
Wend

Debug Counter

ForEach FileNames()
  ; datei bearbeiten
Next


Grüße


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: OpenFileRequester (Anzahl ausgewählter Dateien)
BeitragVerfasst: 04.01.2020 13:37 
Offline
Benutzeravatar

Registriert: 29.08.2005 13:56
Wohnort: Köln
Eine Lösung wäre ja z.B. erst die vom "OpenFileRequester" erstellten Daten (wie immer diese aufgebaut seien..) in
eine Liste zu speichern und deren Elementgröße später per ListSize() zu ermitteln. Ist aber doch echt umständlich

Code:
NewList files.s()
selectedFiles.s = OpenFileRequester("Dateien hinzufügen", "", "*.*", 0, #PB_Requester_MultiSelection)

While selectedFiles
  AddElement(files())
  files() = selectedFiles
  selectedFiles = NextSelectedFileName()
Wend 

Debug ListSize(files())
ForEach files()
  Debug files()
Next

:lol:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: OpenFileRequester (Anzahl ausgewählter Dateien)
BeitragVerfasst: 04.01.2020 13:38 
Offline
Benutzeravatar

Registriert: 29.08.2005 13:56
Wohnort: Köln
...da war einer schneller! :lol:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: OpenFileRequester (Anzahl ausgewählter Dateien)
BeitragVerfasst: 04.01.2020 14:27 
Offline

Registriert: 13.05.2010 09:26
Wohnort: Berlin
ST4242 hat geschrieben:
einfach alle Dateinamen in eine Linkedlist einlesen. Dann ist die Anzahl bekannt.
Dann die Dateien der LinkedList bearbeiten

So würde ich's machen.

_________________
Dieser Satz ist falsch.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: OpenFileRequester (Anzahl ausgewählter Dateien)
BeitragVerfasst: 04.01.2020 14:45 
Offline

Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge
Genau so würde ich das auch machen.

Über die Windows-Api müsstest du auch erst alle NULL - Zeichen filtern.
(Das macht NextSelectedFileName() für dich.)

Code:
Global odiag.OPENFILENAME
Global *file_buffer = AllocateMemory(1024)
Global counter = 0

odiag\lStructSize = SizeOf(odiag)
odiag\lpstrFile = *file_buffer
odiag\lpstrTitle = @"Mein Dateidialog"
odiag\hWndOwner = #Null
odiag\nMaxFile = 1024
odiag\Flags = #OFN_ALLOWMULTISELECT | #OFN_EXPLORER

GetOpenFileName_(@odiag)

;UTF8
For i = 0 To MemorySize(*file_buffer) Step 2
  If PeekC(*file_buffer + i) = #Null
    counter + 1
    If Not (PeekC(*file_buffer + (i + 1)) <> #Null)
      If counter > 1
        counter - 1
      EndIf
      Break
    EndIf
  EndIf
Next

Debug counter

_________________
Betriebssysteme: MX Linux 19 / Windows 10 / Mac OS 10.15.2 / Android 7.0 ;)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye