Deutsch
Forum

Savefile-Dialog Namensvorschlag

 

rafl
Ich möchte gerne in einen Savefile-Dialog einen Namensvorschlag für die zu speichernde Datei übergeben, der sich aus dem Dateinamen einer vorher eingelesenen Eingabedatei ergibt. Dieser Namensvorschlag soll vom Programmnutzer entweder übernommen oder geändert werden können.

Bsp.: Name der Eingabedatei: "test.inp", Name der Ausgabedatei: "test.out". Beim Öffnen des Savefile-Dialoges soll "test.out" schon in dem Eingabefeld hinter Dateinamen stehen. Je nach Bedürfnis kann dann der Nutzer entscheiden, ob er den Dateinamen so stehen lässt oder ändert. Ich habe es schon mit verschiedenen Einstellungen des Parameters S2 beim Aufruf von savefile$ probiert, habe das gewünschte Ergebnis aber nicht hinbekommen.
 
19.08.2017  
 




ByteAttack
Lief bei mir einwandfrei???
var Name$=SaveFile$("Speichere Datei","test.out")
 
XProfan X3
Website:  [...] 
Facebook:  [...] 
20.08.2017  
 




rafl
OK, vielen Dank. Und wie kombiniere ich das mit einem Filter, dass bei der Angabe eines individuellen Namens *.out verwendet wird?

Meine bisherige Programmzeile sieht so aus:
outdatei$=SaveFile$("Datei speichern","out-Datei (*.out)|*.out")
 
20.08.2017  
 




ByteAttack
Also bei S2 steht ja drin:

Namensvorschlag (mit Pfad) oder Dateimaske

Weiterhin ist ja im Dateityp ja dann *.out drin. Wird nur ein Name im Dateityp angegeben wird automatisch ein .out drangehängt.

(Profan-Hilfe: Die ausgewählte Endung wird benutzt, wenn beim Dateinamen keine Endung angegeben wird.)

Also
var Name$=SaveFile$("Speichere Datei","test.out")
reicht völlig!
 
XProfan X3
Website:  [...] 
Facebook:  [...] 
20.08.2017  
 




rafl
Vielen Dank !
Jetzt klappts.
Das hat sich für mich so aus der Hilfe nicht ergeben.
 
20.08.2017  
 




ByteAttack
Also man kann ja auch für spezielle Fälle einen eigenen Save-Dialog basteln. Dieses ist besonders praktisch, da man viel mehr Funktionen einbauen kann, oder auch selbst eine Vorschau-Datei anzeigen lassen kann. Man hat viel mehr Kontrolle wie man was speichert...



Hab mal als Beispiel eine Exe drangehängt! (Ist nur ein schnell hingeschriebenes Beispiel)
' Nur mal ein Beispiel - Sieht auch nicht wirklich besonders hübsch aus :D
 $H Windows.ph
 $H messages.ph
Usermessages ~wm_close
' ########################### Globale Variablen und Sonstiges
Declare L#,Sz&,Filename&,Pfad&,CDButton&,VorgabePfad$,Typ&,TempExt$,TempFile$,Version&,VText&,GB&
Dim L#,4
DEF PathFindExtension(1) !"shlwapi","PathFindExtensionA"
DEF PathRemoveExtension(1) !"SHLWAPI","PathRemoveExtensionA"
VorgabePfad$="E:\myPrograms\SelfSave"' <--- Bitte ändern, da dieser Pfad muss zum testetn existent sein muss !!!
' ########################### Findet Extension beim Dateiname

Proc Findext

    parameters FN$
    Declare ext#
    Dim ext#,20
    ext# = PathFindExtension(addr(FN$))
    FN$ = string$(ext#,0)
    dispose ext#
    return FN$

endproc

' ########################### Nur Dateiname ohne Extension

proc removeExt

    parameters FN$
    Declare Result#,result$
    Dim Result#,261
    string result#,0 = FN$
    PathRemoveExtension(result#)
    result$ = string$(result#,0)
    Dispose result#
    return result$

endproc

' ########################### Fensterelemente

Proc Elements

    Create("Text",%hwnd,"Dateiname:",10,12,80,23)
    Filename&=Create("Edit",%hwnd,"Test.out",87,10,400,23)
    Create("Text",%hwnd,"Pfad:",10,42,80,23)
    Pfad&=Create("Edit",%hwnd,VorgabePfad$,87,40,400,23)
    CDButton&=Create("Button",%hwnd,"Pfad ändern",500,40,100,23)
    Create("Text",%hwnd,"Dateityp:",10,72,80,23)
    Typ&=Create("ChoiceBox",%hwnd,0,87,70,400,230)
    AddString(Typ&,"OUT-Datei (*.out)")
    AddString(Typ&,"XML (*.xml)")
    AddString(Typ&,"JSON (*.json)")
    SelectString(Typ&,-1,"OUT")
    TempExt$="OUT-Datei (*.out)"
    VText&=Create("Text",%hwnd,"Version:",10,102,80,23)
    Version&=Create("ChoiceBox",%hwnd,0,87,100,400,230)
    AddString(Version&,"Out-Version 1.0")
    AddString(Version&,"Out-Version 2.0")
    AddString(Version&,"Out-Version 3.0")
    SelectString(Version&,-1,"Out-Version 1.0")
    GB&=Create("GroupBox",%hwnd," Optionen ",87,130,400,85)
    Create("CheckBox",GB&,"Schreibgeschützt",10,20,150,23)
    Create("CheckBox",GB&,"Versteckt",170,20,150,23)
    Create("CheckBox",GB&,"Komprimiert",10,50,150,23)
    Create("CheckBox",GB&,"Verschlüsselt",170,50,150,23)
    Create("DefButton",%hwnd,"Speichern",87,230,100,23)
    Create("Button",%hwnd,"Abbrechen",190,230,100,23)

EndProc

' ########################### Neuer Pfad

Proc NewDir

    var NeuPfad$=ChooseDir$(%hwnd,"Neuen Pfad wählen",GetText$(Pfad&),2)
    CaseNot NeuPfad$="":SetText Pfad&,NeuPfad$

EndProc

' ########################### Update Fenster

Proc UpdateWindow

    Case width(%hwnd,1)<800:SetWindowPos %hwnd=%WinLeft,%WinTop-800,height(%hwnd,1);0
    Case height(%hwnd,1)<600:SetWindowPos %hwnd=%WinLeft,%WinTop-width(%hwnd,1),600;0
    SetWindowPos Sz& = 0,0-0,0;0

EndProc

' ########################### Hauptfenster
WindowStyle 31
WindowTitle "SelfSave Beispiel"
Window %maxX+5,5 - 800,600
Cls ~GetSysColor(15)
UseFont "Verdana",16,0,0,0,0
var font&=Create("Font","Verdana",16,0,0,0,0)
SetDialogFont 1
Elements
Long L#,0=-1
Sz& = Create("StatusWindow",%HWND,"",1,L#)
SetText Sz&, 0, "Dateiname: Test | Extension: odt"
SetWindowPos %hwnd=((%maxX/2)-400),((%maxY/2)-300)-800,600;0
' ########################### Hauptschleife

WhileNot (%Umessage = ~wm_close) & (&uWnd = %hWnd)

    WaitInput
    Case %Key=4:UpdateWindow
    Case Clicked(CDButton&):NewDir

    if GetText$(Typ&)=TempExt$

    else

        removeExt GetText$(Filename&)

        if $(0)=""

            TempFile$="Neue Datei"

        else

            TempFile$=$(0)

        endif

        if GetText$(Typ&)="OUT-Datei (*.out)"

            SetText Filename&,TempFile$+".out"
            SetText Sz&, 0, "Dateiname: "+Tempfile$+" | Extension: out"
            EnableWindow Version&,1
            EnableWindow VText&,1

        elseif GetText$(Typ&)="XML (*.xml)"

            SetText Filename&,TempFile$+".xml"
            SetText Sz&, 0, "Dateiname: "+Tempfile$+" | Extension: xml"
            EnableWindow Version&,0
            EnableWindow VText&,0

        elseif GetText$(Typ&)="JSON (*.json)"

            SetText Filename&,TempFile$+".json"
            SetText Sz&, 0, "Dateiname: "+Tempfile$+" | Extension: json"
            EnableWindow Version&,0
            EnableWindow VText&,0

        endif

        TempExt$=GetText$(Typ&)

    endif

EndWhile

Dispose L#

662 kB
Bezeichnung:SelfSave
Hochgeladen:21.08.2017
Ladeanzahl94
Herunterladen
 
Website:  [...] 
Facebook:  [...] 
21.08.2017  
 




ByteAttack
Video Preview: (YouTube) [...] 
 
XProfan X3
Website:  [...] 
Facebook:  [...] 
21.08.2017  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

5.795 Betrachtungen

Unbenanntvor 0 min.
RudiB.15.04.2022
Michael Hettner02.09.2021
Manfred Barei02.03.2019
rafl17.02.2019
Mehr...

Themeninformationen

Dieses Thema hat 2 Teilnehmer:

ByteAttack (4x)
rafl (3x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie