in Datei schreiben, ohne zu überschreiben...



  • Das ist einigermaßen richtig.
    Einigermaßen daher, weil ich das nicht OK finde, wenn man feste größen für irgendwas hat. Muss variabel sein...

    Es muss doch einen Weg geben, das zu meistern oder?
    Ich will ja quasi nur den Rest der Datei verschieben.



  • lippoliv schrieb:

    Das ist einigermaßen richtig.
    Einigermaßen daher, weil ich das nicht OK finde, wenn man feste größen für irgendwas hat. Muss variabel sein...

    Es muss doch einen Weg geben, das zu meistern oder?
    Ich will ja quasi nur den Rest der Datei verschieben.

    ob du das richtig findest, hin- oder her, es ist die gängige praxis.

    ansonsten kannst du mit zwei dateien arbeiten:
    kopiere bis einfügestelle, hänge neuen eintrag an, kopiere den rest.
    löschen der alten datei umbenennen der zweiten.

    thats all 🙂



  • Das ist natürlich ne ide... oder noch besser, Kopiere die betreffende Sektion in eine Neue Datei, hänge ans ender der neuen Datei den kram an, kopiere an das Ende der alten Datei zurück... Müsste auch gehn oder?



  • lippoliv schrieb:

    Das ist natürlich ne ide... oder noch besser, Kopiere die betreffende Sektion in eine Neue Datei, hänge ans ender der neuen Datei den kram an, kopiere an das Ende der alten Datei zurück... Müsste auch gehn oder?

    nö, das geht nicht so einfach. es sei denn, das die sektion wo du anfügst zufällig am ende der datei steht.



  • Na auch egal, denn es würde freier platz zurückbleiben. Deine ide ist scchon ganz gut, nur wie komme ich an den Dateinamen?



  • lippoliv schrieb:

    Na auch egal, denn es würde freier platz zurückbleiben. ...

    freier platz ? du hättest u.u. doppelte einträge.

    lippoliv schrieb:

    ... wie komme ich an den Dateinamen?

    den kannst du frei vergeben.
    zwei dateinamen brauchst du, z.b: 'die.ini' und 'temp.ini'

    // Pseudocode. 
    öffne temp.ini zum schreiben, öffne die.ini zum lesen
    
    bis einfuegestelle_gefunden_ist:
            kopiere inhalt von die.ini in temp.ini
    
    schreib einzufügenden eintrag in temp.ini 
    
    bis dateiende von die.ini:
             kopiere inhalt von die.ini in temp.ini
    
    schliesse temp.ini und die.ini
    lösche die.ini 
    umbennenen temp.ini in die.ini
    

    genau so kannst du übrigens auch vorgehen, wenn du einen eintrag löschen möchtest 🙂



  • Dann muss der Dateiname natürlich auch an meine Funktion übergeben werden richtig? Habe ich eine Chance, aus einem FILE* den Dateinamen zu lesen? Dann spare ich mir einen Parameter.

    Danke übrigens für deinen Pseudocode, hätts wahrscheinlich ähnlich, aber kompizierter gemacht, wie ich mich kenne 😃



  • lippoliv schrieb:

    Dann muss der Dateiname natürlich auch an meine Funktion übergeben werden richtig?

    klar.

    lippoliv schrieb:

    Habe ich eine Chance, aus einem FILE* den Dateinamen zu lesen?

    weiss nicht, lass dir doch die member von struct FILE ausgeben, wenn du eine datei geöffnet hast.



  • wie macht man sowas?

    HINWEIS:
    Notepad++(Texteditor, mit schlechtem syntaxhighlighting.)
    MinGW (ext.Compiler)
    kein debugger



  • lippoliv schrieb:

    wie macht man sowas?

    in eine gute dokumentation reingucken, welche die member der struct FILE auflistet.
    oder aber mit ner gute IDE, welche dir über code-completition die optionen anzeigt.

    lippoliv schrieb:

    HINWEIS:
    Notepad++(Texteditor, mit schlechtem syntaxhighlighting.)
    MinGW (ext.Compiler)
    kein debugger

    ist das nötig ? programmierst du unter windows, linux oder so ?
    für windows gibts kostenlos visual studio und sonstige, für linux gibts bestimmt auch gute IDEs



  • Kann man irgendwo ins Profil folgenden Text schreiben?:
    "Ich kenne IDEs z.B. Microsoft Visual Studio oder Borland Turbo Delphi usw...
    Mein Chef allerdings gibt mir folgende Richtlinie:
    Notepad++ (Texteditor mit schlechtem syntaxhighlighting [es geht eig])
    MinGW (externer compiler)
    kein debugger"
    Dann könnt ich mir manche posts sparen 😉

    Kann mir wer ein neues Bit geben? meine 8 Bit sond vollgelaufen

    << Beiträge: 256

    [edit] MIST 2 beiträge zu spät...



  • lippoliv schrieb:

    Kann man irgendwo ins Profil folgenden Text schreiben? ...

    in deine signatur 😉

    lippoliv schrieb:

    Mein Chef allerdings gibt mir folgende Richtlinie:
    Notepad++ (Texteditor mit schlechtem syntaxhighlighting [es geht eig])
    MinGW (externer compiler)
    kein debugger"

    welchen geistigen nährwert hat das ?
    back to the roots ?
    kannst ja deine win.ini gleich in stein ritzen 😃



  • Habs in der Sig,
    es hat einen Lerneffekt, da ich in der Ausbildung bin.

    Ich bekomme so ein Auge für den Code und kann mich mit fehlern besser auseinandersetzen, allerdings ist irgendwann der Zeitpunkt gekommen, wo man manche fehler beim Besten willen nicht versteht (mein Button-Icon problem wenn die buttons ne subclass haben) und am besten einen Debugger bräuchte...

    Naja, werde mich -bei zeiten- mal wieder an den INI kram machen, jetzt geht mein Editor erstmal vorran.



  • lippoliv schrieb:

    es hat einen Lerneffekt, da ich in der Ausbildung bin.

    achso, super.
    wie heisst denn die berufsbezeichnung ?

    lippoliv schrieb:

    Naja, werde mich -bei zeiten- mal wieder an den INI kram machen, jetzt geht mein Editor erstmal vorran.

    viel erfolg 👍



  • "Fachinformaticker fachrichtung Anwendungsentwicklger" oder eher "Programmierer" 😃

    Aber wie auch immer offiziell gilt "Benutze möglichst viele lange Wörter, wo die Leute am Ende des Satzes schon den Anfang vergessen haben und nurnoch sagen 'Boah Geiles Teil'" 😉

    Naja bin ja erst 5 Monate dabei, also lerne ich momentan noch ziemlich viel.



  • lippoliv schrieb:

    Naja bin ja erst 5 Monate dabei, also lerne ich momentan noch ziemlich viel.

    man lernt nie aus 😉 das ist nach 5 jahren auch nicht viel anders 🙂
    dann mal gutes gelingen für deine ausbildung ! 👍



  • Das man nie auslernt ist mir bewusst... Ist aber auch gut so, würde irgendwann keinen Spass mehr machen.

    Danke... MFG


Anmelden zum Antworten