Français
DLL

Random Access DLL

 

H.Brill
Random Access DLL (Freeware) de MRK-Soft.
qui Bearbeitung bzw. Lecture de Random
Access Fichiers wurde déjà öfter im Forum
nachgefragt.

13 kB
Hochgeladen:21.03.2009
Downloadcounter277
Download
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
21.03.2009  
 




H.Brill
Anbei mon (X)Profan - variante.
qui Datensätze volonté toujours à l' Ende angehängt. Pour cette peux on
mais aussi Datensätze oui c'est ca sur qui Stelle changement. et quoi früher
chez GW-BASIC & Co. pas ging (cela physikalische Effacer) allez
par Umkopieren aussi.

Viel Amusement avec cela !
Déclarer Mem personnel, Handle btn1, btn2, btn3, btn4, btn5, grid, edit1, edit2, edit3, edit4
Déclarer Long satznr, anz, ende, knopf, pos
Déclarer String la ligne, fichier
Struct Mitarbeiter = nom$(30), prénom$(30), Gehalt&, Abteilung$(256)
Faible personnel, Mitarbeiter
fichier = $PROGDIR + "Mitarbeiter.dat"
Titre de la fenêtre "Personal"
Fenêtre 620, 400
Créer("Text", %HWnd, "Name   : ", 10, 10, 80, 25)
edit1 = Créer("Edit", %HWnd, », 100, 10, 120, 25)
Créer("Text", %HWnd, "Vorname", 230, 10, 80, 25)
edit2 = Créer("Edit", %HWnd, », 310, 10, 80, 25)
Créer("Text", %HWnd, "Gehalt : ", 10, 40, 80, 25)
edit3 = Créer("Edit", %HWnd, », 100, 40, 80, 25)
Créer("Text", %HWnd, "Abteilung : ", 230, 40, 80, 25)
edit4 = Créer("Edit", %HWnd,  », 310, 40, 250, 25)
btn1 = Créer("Button", %HWnd, "Speichern", 10, 80, 80, 25)
btn2 = Créer("Button", %HWnd, "Lesen", 100, 80, 80, 25)
btn3 = Créer("Button", %HWnd, "Ändern", 200, 80, 80, 25)
btn4 = Créer("Button", %HWnd, "Löschen", 300, 80, 80, 25)
btn5 = Créer("Button", %HWnd, "Ende", 500, 80, 60, 25)
grid = Créer("GridBox", %HWnd, "Nr;0;40;Namen;0;180;Vornamen;0;100;Gehälter;0;80;Abteilung;0;240", 0, 10,120, 580, 200)
ende = 0
Assign #1, fichier

WhileNot ende

    WaitInput

    Si Clicked(btn1)

        ' Sauver
        Claire personnel

        With personnel

            .nom$ = GetText $(edit1)
            .prénom$ = GetText $(edit2)
            .Gehalt& = Val(GetText $(edit3))
            .Abteilung$ = GetText $(edit4)

        EndWith

        Si GetText $(edit1) <> »

            pos = GetCount(grid) + 1
            la ligne = Str$(pos) + "|" + GetText $(edit1) + "|" + GetText $(edit2) + "|" + GetText $(edit3) + "|" + GetText $(edit4)
            AddStrings(grid, la ligne)
            SetCurSel grid, GetCount(grid) - 1
            PutRecord(1, personnel)
            SetText edit1, »
            SetText edit2, »
            SetText edit3, »
            SetText edit4, »

        D'autre

            MessageBox("Kein nom angegeben !", "Fehler", 0)

        EndIf

    ElseIf Clicked(btn2)

        ' Lesen

        Si FileExists(fichier)

            anz = FileSize(fichier) / SizeOf(personnel)
            ClearList grid

            WhileLoop 0, anz - 1

                GetRecord(1, &LOOP, personnel)

                With personnel

                    la ligne = Str$(&LOOP + 1) + "|" + .nom$ + "|" + .prénom$ + "|" + Str$(.Gehalt&) + "|" + .Abteilung$

                EndWith

                AddStrings(grid, la ligne)
                Claire personnel

            Endwhile

        D'autre

            MessageBox("Noch aucun Dossier angelegt !", "Info", 0)

        EndIf

    ElseIf Clicked(btn3)

        ' Changement
        Claire personnel

        With personnel

            .nom$ = GetText $(edit1)
            .prénom$ = GetText $(edit2)
            .Gehalt& = Val(GetText $(edit3))
            .Abteilung$ = GetText $(edit4)

        EndWith

        satznr = GetCurSel(grid)
        ChangeRecord(1, satznr, personnel)
        satznr = GetCurSel(grid)
        SetText grid, satznr, 1, GetText $(edit1)
        SetText grid, satznr, 2, GetText $(edit2)
        SetText grid, satznr, 3, GetText $(edit3)
        SetText grid, satznr, 4,GetText $(edit4)

    ElseIf Clicked(btn4)

        ' Delete record
        satznr = GetCurSel(grid)
        knopf = MessageBox("Sind vous wirklich sûrement ?", "Datensatz löschen", 292)

        Si knopf = 6

            DeleteString(grid, satznr)
            DeleteRecord(1, satznr + 1, personnel)' GT. 0 - Position

        EndIf

    ElseIf Clicked(btn5)

        ende = 1

    ElseIf Clicked(grid)

        pos = GetCurSel(grid)

        Si pos > -1

            la ligne = GetString$(grid, GetCurSel(grid))
            SetText edit1, $ Substr(la ligne, 2, "|")
            SetText edit2, $ Substr(la ligne, 3, "|")
            SetText edit3, $ Substr(la ligne, 4, "|")
            SetText edit4, $ Substr(la ligne, 5, "|")

        EndIf

    EndIf

    Cas %Key = 2 : ende = 1

Endwhile

Dispose personnel

Proc PutRecord

    Paramètres Long canal, Memory bereich
    Déclarer Long pos
    OpenRW #canal
    Seek #canal, GetFileSize(#canal)
    BlockWrite #canal, bereich, 0, SizeOf(bereich)
    Fermer #canal

ENDPROC

Proc GetRecord

    Paramètres Long canal, satznr, Memory bereich
    Déclarer Long size, offset, records
    OpenRW #canal
    offset = satznr * SizeOf(bereich)
    Seek #canal, offset
    BlockRead(#canal, bereich, 0, SizeOf(bereich))
    Fermer #canal

ENDPROC

Proc ChangeRecord

    Paramètres Long canal, satznr, Memory bereich
    Déclarer Long offset, records
    OpenRW #canal
    records = GetFileSize(#canal) / SizeOf(bereich)

    Si satznr = 0

        offset = 0

    ElseIf (satznr > 0) And (satznr <= records)

        offset = satznr * SizeOf(bereich)

    EndIf

    Seek #canal, offset
    BlockWrite #canal, bereich
    Fermer #canal

ENDPROC

Proc DeleteRecord

    Paramètres Long canal, satznr, Memory bereich
    Déclarer Long offset, records
    Assign #2, $PROGDIR + "Datei2.dat"
    OpenRW #canal
    OpenRW #2
    offset = 0
    records = GetFileSize(#canal) / SizeOf(bereich)
    Claire bereich

    WhileLoop 1, records

        Si non &LOOP = satznr

            Seek #canal, offset
            BlockRead(#canal, bereich, 0, SizeOf(bereich))
            Seek #2, GetFileSize(#2)
            BlockWrite #2, bereich, 0, SizeOf(bereich)
            Claire Bereich

        EndIf

        Inc offset, SizeOf(bereich)

    Endwhile

    Fermer #canal
    Effacer #canal
    OpenRW #canal
    offset = 0
    records = GetFileSize(#2) / SizeOf(bereich)

    WhileLoop 1, records

        Seek #2, offset
        BlockRead(#2, bereich, 0, SizeOf(bereich))
        Seek #canal, GetFileSize(#canal)
        BlockWrite #canal, bereich, 0, SizeOf(bereich)
        Inc offset, SizeOf(bereich)

    Endwhile

    Fermer #canal
    Fermer #2
    Effacer #2
    Assign #2, »

ENDPROC

Fin

peut-être hat oui encore quelqu'un 'alte Schätzchen' aus qui DOS-Zeit et voudrais
vous ins Windowszeitalter retten. je denke la fois, qui cela avec cela aussi allez, zumal
les numéros et Buchstaben beim OEM-Zeichensatz à qui gleichen Stelle stehen. si pas, devrait on la fois avec OemToAnsi$() ou bien qui Bereichsfunktion Char$() essayer. und dir oui pratique seulement tout autor, qui chez DOS encore aucun abschließende Nullbytes à den Cordes étions.

Bien sûr ist es bien, aussi den GW-BASIC quelltext dabei trop avons, um den
FIELD - Befehl avec seiner Struktur trop voyons. cela gleiche pouvoir on ici
avec Struct et anschließendem Dimmen eines Bereichs. un Assign encore
en supplément et qui Vorbereitungen sommes fertig.
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
vor 6 Tagen  
 



Zur DLL


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

5.523 Views

Untitledvor 0 min.
Manfred BareiGestern (09:01)
RudiB. vor 4 Tagen
Jürgen Strahl vor 4 Tagen
H.Brill vor 6 Tagen
plus...

Themeninformationen

cet Thema hat 1 participant:

H.Brill (2x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie