Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Προσπέλαση και εγγραφή αρχείων ini με VB6

Îåêßíçóå áðü ôï ìÝëïò Michelle. Τελευταία δημοσίευση από το μέλος gioklis στις 15-10-2019, 22:13. Υπάρχουν 6 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  21-07-2005, 10:02 3690

    Προσπέλαση και εγγραφή αρχείων ini με VB6

    Μού έχει χρειαστεί πολλές φορές να κρατάω ρυθμίσεις κάποιου προγράμματος που φτιάχνω σε αρχεία ini αλλά η VB δεν έχει κάποια built in λειτουργία για να αυτό. Είχα βάλει παλιά ενα plugin αλλά ήταν shareware και έληξε και που λεφτά για να το αγοράσω (ήδη το vBulletin στο φόρουμ μου μου κόστισε καμποσο).
    Μήπως έχετε υπόψιν κάποιο free και ευχρηστο plugin ή ActiveX control ή οτιδήποτε για αυτή τη λειτουργία?
    Να κάτσω να το κάνω μόνη μου δεν το θεωρώ χρήσιμο καθώς δεν είναι πια και τόσες οι ρυθμίσεις που θέλω να κρατήσω για να αξίζει τον κόπο!
    Ευχαριστώ εκ των προτέρων!


  •  21-07-2005, 13:26 3706 σε απάντηση της 3690

    Απ:Προσπέλαση και εγγραφή αρχείων ini με VB6

    Για δες αυτό : http://www.freevbcode.com/code/ReadWriteIni.zip


    Sex is like programing; One mistake, and you will have to support it for the rest of your life…
  •  21-07-2005, 17:34 3728 σε απάντηση της 3706

    Απ:Προσπέλαση και εγγραφή αρχείων ini με VB6

    Δεδομένου ότι δεν έχω πλέον VB6 εγκατεστημένη, θα πρέπει να φτιάξεις ένα project (που να βγάζει dll).

    Αναλυτικά:

    • Φτιάξε το Project
    • Μπορεί να θέλει reference στο stdole2.tlb
    • Πρόσθεσε ένα .bas με το ακόλουθο περιεχόμενο

    Public Declare Function GetProfileString Lib "kernel32" Alias "GetProfileStringA" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long) As Long

    Public Declare Function WriteProfileString Lib "kernel32" Alias "WriteProfileStringA" (ByVal lpszSection As String, ByVal lpszKeyName As String, ByVal lpszString As String) As Long

    Public 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

    Public 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

    • Πρόσθεσε ένα .cls με το ακόλουθο περιεχόμενο (το class πρέπει να είναι global, να μην χρειάζεται new)

    Public Function sl_GetProfileStr(ByVal strSection As String, ByVal strEntry As String, ByVal strDefault As String) As String
        Dim strTmp As String, lngDummy As Long
       
        strTmp = String(512, 0)
        lngDummy = GetProfileString(strSection, strEntry, strDefault, strTmp, 1024)
        sl_GetProfileStr = Left(strTmp, InStr(1, strTmp, Chr(0)) - 1)
       
    End Function

    Public Function sl_GetPrivProfileStr(ByVal strSection As String, ByVal strEntry As String, ByVal strDefault As String, ByVal strINI As String) As String
        Dim strTmp As String, lngDummy As Long
       
        strTmp = String(512, 0)
        lngDummy = GetPrivateProfileString(strSection, strEntry, strDefault, strTmp, 1024, strINI)
        sl_GetPrivProfileStr = Left(strTmp, InStr(1, strTmp, Chr(0)) - 1)
       
    End Function

    Public Function sl_WritePrivProfileString(ByVal strSection As String, ByVal strEntry As String, ByVal strValue As String, ByVal strINI As String) As Long

        sl_WritePrivProfileString = WritePrivateProfileString(strSection, strEntry, strValue, strINI)
       
    End Function

    Public Function sl_WriteProfileString(ByVal strSection As String, ByVal strEntry As String, ByVal strValue As String) As Long

        sl_WriteProfileString = WriteProfileString(strSection, strEntry, strValue)
       
    End Function

    • Compile and use Smile [:)]

    Σημειώσεις:

    1. Εάν χτυπήσει, πες μου. Μπορεί να έχω ξεχάσει κάτι Embarrassed [:$]
    2. To πρόθεμα "sl_" είναι ένα πρόθεμα που χρησιμοποιούσα στις βιβλιοθήκες μου. Το κρατάς ή το αλλάζεις
    3. Οι functions με το "Priv" βλέπου το .INI που τους περνάς. Οι άλλες το WIN.INI. Δηλαδή έχουμε απλό wrapping των API functions

    Άρης

     


    Aris
  •  22-07-2005, 10:19 3746 σε απάντηση της 3728

    Απ:Προσπέλαση και εγγραφή αρχείων ini με VB6

    Αρη μπερδεύτηκα εντελώς Tongue Tied [:S]Tongue Tied [:S]Tongue Tied [:S]

  •  22-07-2005, 12:52 3749 σε απάντηση της 3746

    Απ:Προσπέλαση και εγγραφή αρχείων ini με VB6

    Συνημμένα: Desktop.zip

    Επεξηγήσεις υλοποίησης:

    1. Θα φτάξεις ένα καινούργιο VB project (π.χ. MyLib)
    2. Θα ορίσεις ότι θα βγάζει DLL (MyLib.DLL)
    3. Από το συννημένο, θα προσθέσεις τα δύο αρχεία που περιέχει
    4. Compile
    • Εάν χτυπήσει λάθος, πες μου
    • Εάν όλα πάνε καλά, θα έχεις ένα library που θα το προσθέσεις στο project που το χρειάζεσαι
    • Εάν ΔΕΝ θέλεις να το κάνεις library, απλά πρόσθεσε στο project σου αυτά τα αρχεία

    Οδηγίες χρήσης:

    • Τα Windows έχουν (από την εποχή των Windows 3.0 - ίσως και από πιό παλιά) ένα αρχείο ρυθμίσεων συστήματος, το win.ini (και ένα ακόμα, To system.ini). Αυτά ΔΕΝ ΣΕ ΑΦΟΡΟΥΝ
    • Για δικά σου αρχεία ini, χρησιμοποιείς τις sl_GetPrivProfileStr (=διάβασμα) & sl_WritePrivProfileStr (=γράψιμο), όπου
      • strSection = η εννότητα
      • strEntry = η εγγραφή
      • strDefault = η τιμή που θα επιστραφεί εάν δεν βρεθεί η εγγραφή strEntry στην εννότητα strSection
      • strValue = η τιμή που θα γραφεί στην εγγραφή strEntry της εννότητας strSection
      • strINI = το πλήρες path του αρχείου INI

    Παράδειγμα:

    [Settings]

    XPOS=100

    YPOS=200

    Εδώ έχεις μία εννότητα (strSection="Settings", το δίνεις χωρίς τις τετράγωνες αγκύλες) με δύο εγγραφές, τις "XPOS" & "YPOS". Έστω ότι το αρχείο είναι το C:\MyProgram\MySettings.ini

    Διαβάζεις το XPOS με την

    strReturn = sl_GetPrivProfileStr("Settings", "XPOS", "DenToVrika", "C:\MyProgran\MySettings.ini") - ΜΗΝ ΞΕΧΝΑΣ ΟΤΙ ΕΠΙΣΤΡΕΦΕΙ string

    και το γράφεις με την

    sl_WritePrivProfileStr(("Settings", "XPOS", CStr(200), "C:\MyProgran\MySettings.ini") - μην ασχολείσαι με την τιμή που επιστρέφεται

    Ελπίζω να είναι καταννοητά Smile [:)]

    Άρης


    Aris
  •  22-07-2005, 12:56 3750 σε απάντηση της 3749

    Απ:Προσπέλαση και εγγραφή αρχείων ini με VB6

    Καταπληκτικό φαίνεται!
    Μόλις βρώ λίγο χρόνο θα το προσθέσω στο project μου (δεν είμαι εξοικειωμένη με libraries στη VB) και θα σου πώ αποτελέσματα!!!


  •  15-10-2019, 22:13 78396 σε απάντηση της 3750

    Απ: Απ:Προσπέλαση και εγγραφή αρχείων ini με VB6


     

    Ένα παράδειγμα που να δουλεύει ;

Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems