Dateiende neu schreiben



  • Hallo zusammen,

    ich mache gerade eine Ausbildung zum ITA (Infomations technischen Assistenten, sprich weiß alles kann nichts!)

    Ich sitzte gerade an einem Schulprojekt, klappt alles soweit recht flüssig, aber ich möchte einen festen Datensatz aus der Datei löschen.

    Ich habe mir das so gedacht, ich nehme den letzten Datensatz und kopier in die stelle des zu löschenden Datzensatzes. Nun möchte ich an die 1. Stelle des letzten Datensatzes das EOF Zeichen schreiben.

    Wie ich die Positionen ermittel etc. ist kein Thema nur wie schreibe ich das Zeichen da hinein?

    Wie kann ich den INT-Wert -1 in eine char-Variable Convertieren. Oder wie kann ich es anders lösen?

    Zum Hinweis, ich programmiere seit ca. 7-8 Jahren eigentlich nur in Basic und Visual Basic, desswegen fällt mir der schulische Wechsel auf C++ manchmal etwas schwer wegen den denkweisen 😉

    Danke schonmal im Vorraus... 🙂



  • MBJ schrieb:

    Danke schonmal im v******... 🙂

    p00n3d 👍



  • Eigentlich sollte da "im v o r r a u s" stehen, warum das zensiert wird keine Ahnung 😕



  • MBJ schrieb:

    Eigentlich sollte da "im v o r r a u s" stehen, warum das zensiert wird keine Ahnung 😕

    Das muss man stehen lassen. Bitte Sticky !!!111

    Außerdem: SCREENSHOT 🙂



  • MBJ schrieb:

    aber ich möchte einen festen Datensatz aus der Datei löschen.

    Ich habe mir das so gedacht, ich nehme den letzten Datensatz und kopier in die stelle des zu löschenden Datzensatzes. Nun möchte ich an die 1. Stelle des letzten Datensatzes das EOF Zeichen schreiben.

    Ich habe das ganze damals in der Schulde mit Delphi Language machen müssen. Da Delphi IMHO Pseudo-Code sehr nahe kommt, sollte dir Folgendes helfen.

    while not Eof(Datei) do begin
          Read(Datei,myRecord);
          Seek(Datei,FilePos(Datei)-2);
          Write(Datei,myRecord);
          Seek(Datei,FilePos(Datei)+1);
        end;
        Seek(Datei,FilePos(Datei)-1);
        Truncate(Datei);
    

    Prinzip: der zu löschende Datensatz wird an das Ende geschoben ( == alle anderen werden vor diesen geschoben) und dann wird das File vor dem letzten DS (== zu löschender DS) abgeschnitten.
    Ist eine Möglichkeit.



  • MBJ schrieb:

    Wie kann ich den INT-Wert -1 in eine char-Variable Convertieren. Oder wie kann ich es anders lösen?

    Zum Hinweis, ich programmiere seit ca. 7-8 Jahren eigentlich nur in Basic und Visual Basic, desswegen fällt mir der schulische Wechsel auf C++ manchmal etwas schwer wegen den denkweisen 😉

    Du kannst die paar Byte des Integers doch einfach speichern? Damit bist du auf der sicheren Seite und verlierst keine Informationen.

    grüße

    P.S.: Wieviel Jahre programmierst du? 7 oder 8? Naja, wer weiß das schon so genau! 😃

    P.P.S.: Was meinst du mit Denkweisen. Die Denkweise ist bei der Programmierung doch meist recht ähnlich. Oder wird in Visual Basic gedankenlos programmiert?

    P.P.P.S.: Voraus schreibt man mit einem 'r'. Nur so als gutgemeinter Tip. 🙂



  • Richtig mitm programmieren habe ich vor 7 Jahren angefangen, vor 8 Jahren hatte ich meine erste "Berührung" mit Quick Basic, desswegen 7-8 Jahre 😉

    Ich finde schon dass man in C/C++ anders programmiert als in Basic, es ist schon ne Umstellung vom Syntax her, sowie den allgemeinen Aufbau eines Programms.

    Danke für die Hilfe ich werde mich das Wochenende mal daran setzten und weiter basteln...

    Gruß MBJ


Anmelden zum Antworten