vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Re: zulest geöffnete Dateien 
Autor: Tolwyn
Datum: 26.11.01 18:55

Hi,

ganz einfach geht es z.B. indem man sich in seiner Anwendung ein Array mit den zuletzt geöffneten Dateinamen behält und dieses in eine INI Datei sichert. Dann muss man nur noch einen Menüeintrag mit dem Index 0 auf dem Form plazieren. Mit diesem kann man dann später beliebig viele weitere Menüeinträge laden und diesen dann entsprechend des DateiArrays benennen.

Zum Testen kannst Du Dir einfach diesen Code in ein Form kopieren, dann brauchst Du noch einen Menüeintrag zum öffnen von Dateien "mnuOpen", ein MS CommonDialog Controll und einen Menüeintrag mit dem Namen mnuFileHistory und dem Index 0

Option Explicit
 
' Array aller zuletzt geöffneten Dateien
Private saLastFiles()       As String
' Name der Datei, in die das Array gespeichert werden soll
Private sHistoryFile        As String
 
' Maximale Anzahl an Dateien, die sich die Anwendung merken soll ist derzeit = 4
Private Const FILEHISTORYMAX    As Long = 4
 
' API
Private Declare Function GetPrivateProfileString Lib "kernel32" _
    Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, _
    ByVal lpKeyName As Any, ByVal lpDefault As String, _
    ByVal lpReturnedString As String, ByVal nSize As Long, _
    ByVal lpFileName As String) As Long
Private Declare Function WritePrivateProfileString Lib "kernel32" _
    Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, _
    ByVal lpKeyName As Any, ByVal lpString As Any, _
    ByVal lpFileName As String) As Long
 
Private Sub Form_Load()
  ' Namen der History Datei festlegen
  sHistoryFile = App.Path & "" & App.EXEName & ".Dat"
 
  ' FileHistory laden
  Call FileHistory
End Sub
 
Private Sub mnuFileHistory_Click(Index As Integer)
  OpenFile saLastFiles(Index)
End Sub
 
Private Sub mnuOpen_Click()
  cdlMain.InitDir = App.Path
  cdlMain.ShowOpen
  If cdlMain.FileName <> "" Then
    Call OpenFile(cdlMain.FileName)
 
    ' Neue Datei geöffnet, also auch im Menü so anzeigen
    Call FileHistory(cdlMain.FileName)
  End If
End Sub
 
Private Sub OpenFile(sFileName As String)
  ' Die Datei öffnen
End Sub
 
Private Function FileHistory(Optional sFileName As String)
  Dim i             As Long
  Dim lLength       As Long
  Dim sReturn       As String * 8096
 
  If sFileName = "" Then
    ' Dateihistorie im Menü laden (da kein Dateiname übergeben wurde)
    ReDim saLastFiles(FILEHISTORYMAX)
    For i = 0 To FILEHISTORYMAX - 1
      ' Liste aller Dateinamen laden.
      lLength = GetPrivateProfileString("FileHistory", _
        "File" & i, "", sReturn, Len(sReturn), sHistoryFile)
      If lLength > 0 Then
        ' Wenn ein Name gelesen werden konnte, dann diesen in das Array 
        ' eintragen
        saLastFiles(i) = Left(sReturn, lLength)
      End If
    Next i
  Else
    ' Datei zur Dateihistorie hinzufügen (weil ein Dateiname übergeben wurde)
    ' saLastFiles Array rückwärts durchlaufen und anpassen
    For i = FILEHISTORYMAX - 1 To 0 Step -1
      If i = 0 Then
        ' Auf Position 0 die zuletzt geöffnete Datei
        saLastFiles(i) = sFileName
      Else
        ' diesen Eintrag mit dem vorherigen überschreiben
        saLastFiles(i) = saLastFiles(i - 1)
      End If
      ' Den Wert sichern
      Debug.Print WritePrivateProfileString("FileHistory", _
        "File" & i, saLastFiles(i), sHistoryFile)
    Next i
  End If
 
  ' Nun das Menü anpassen
  For i = 0 To FILEHISTORYMAX - 1
    If saLastFiles(i) <> "" Then
      ' Wenn wir einen Dateinamen haben dann
      On Error Resume Next  ' Fehler ignorieren (simpel halt)
      ' Hier einen neuen Menüeintrag laden
      Load Me.mnuFileHistory(i)     'ergibt einen Fehler wenn dieser schon 
      ' existiert
      ' dem Menüeintrag nun den Dateinamen zuordnen
      Me.mnuFileHistory(i).Caption = Right(saLastFiles(i), _
        Len(saLastFiles(i)) - InStrRev(saLastFiles(i), "", -1, vbTextCompare))
    End If
  Next i
End Function
Gruß
Tolwyn
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
zulest geöffnete Dateien63youss26.11.01 13:35
Re: zulest geöffnete Dateien48Tolwyn26.11.01 18:55

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel