tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
9
ZUGRIFFE
296
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    july july ist offline Mitglied Gold
    Registriert seit
    May 2011
    Beiträge
    103
    Hallo zusammen,

    ich hab da mal eine Frage. Ich hab eine Datei, die aus mehreren Zeilen besteht, wie kann ich eine bestimmte Zeile ersetzen.

    Grüße July
     

  2. #2
    Avatar von MSVCplusplus
    MSVCplusplus MSVCplusplus ist offline Mitglied Brokat
    Registriert seit
    Dec 2010
    Ort
    Hessen
    Beiträge
    336
    Ich habe es mal so gemacht, eine Schleife, und pro schleifen durchlauf ein zeile weiter gehen.
    dann mit seek und tellg (hieß es glaub ich) die Bytes zählen und die gezählten bytes mit den neuen ersetzen
    Hoffe das ich mich nicht vertan habe wenn doch einfach verbesser
    Habe das schon lange nicht mehr gemacht
    MFG
     
    Fehlermeldung bitte!
    Google - Dein Freund und Helfer

  3. #3
    Avatar von ComFreek
    ComFreek ComFreek ist offline [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.358
    Blog-Einträge
    4
    Du könntest zuerst alle Zeilen in ein Array laden (aber nicht unbedingt nötig) und dann deine Zeile ersetzen.

    @MSVC++

    Dann müsste man aber die Länge der einzelnen Zeilen wissen, oder?
    Bei "meiner" Variante muss das die Datei einfach anhand der Newlines (\r, \n, \r\n) splitten.
     
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

  4. #4
    july july ist offline Mitglied Gold
    Registriert seit
    May 2011
    Beiträge
    103
    Das Problem ist, dass ich nicht den Inhalt auslesen möchte um neu zuschreiben, sondern direkt in der Datei die Zeile überschreiben.
     

  5. #5
    Mavinas Tutorials.de Gastzugang
    Hi,

    bin selbst noch in den Anfängen, aber wie ist denn die "bestimmte" Zeile gekennzeichnet?
    Durch ein bestimmtes Wort z.B.?
    Dann könnte man doch die Datei mit strchr nach diesem durchsuchen und an der Stelle mit Hilfe einer if-Bedingung weiterarbeiten, oder?

    Wenn es nach Zeilen geht, halt einen Zähler mitlaufen lassen und dann eben Zeile xy ersetzen.

    So würde ich mir das vorstellen, naja, wie gesagt, bin noch Anfänger.
     

  6. #6
    july july ist offline Mitglied Gold
    Registriert seit
    May 2011
    Beiträge
    103
    Also ich kenn die Zeile, die ich ersetzen möchte (z.B. 5. Zeile möchte ich neu beschreiben). Mein Problem ist, dass ich nicht weiß wie ich zu einer bestimmten Zeile ankomme um sie zu ersetzen
     

  7. #7
    Steiner_B Steiner_B ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Ort
    Wien
    Beiträge
    573
    Hallo,

    Du kannst einfach zeichenweise auslesen und die '\n' zählen. Wenn du z.B.: mit fgetc ließt steht dann der Filepointer schon an der richtigen Stelle.
     

  8. #8
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Hi

    Ersetzen in Dateien ist sowieso nicht gerade möglich...
    Sobald die neue Zeile eine andere Länge als die alte hat kannst du die Datei gleich neu schreiben.

    Gruß
     

  9. #9
    Avatar von MSVCplusplus
    MSVCplusplus MSVCplusplus ist offline Mitglied Brokat
    Registriert seit
    Dec 2010
    Ort
    Hessen
    Beiträge
    336
    @ComFreek Diel länge der einzelnen Zeilen könnte man auch einfach in bytes auslesen dann hat man ja auch zeichen und zeilen länge, oder?
    MFG
     
    Fehlermeldung bitte!
    Google - Dein Freund und Helfer

  10. #10
    Avatar von ComFreek
    ComFreek ComFreek ist offline [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.358
    Blog-Einträge
    4
    Zitat Zitat von MSVCplusplus Beitrag anzeigen
    @ComFreek Diel länge der einzelnen Zeilen könnte man auch einfach in bytes auslesen dann hat man ja auch zeichen und zeilen länge, oder?
    MFG
    Ja, aber wie sheel sagte, die zu ersetzende Zeile müsste die gleiche Länge haben.
    Sonst wird im Prinzip schon in die nächste geschrieben.

    Ich finde alles in ein Array zu laden ist immer noch am einfachsten, wenn nicht unbedingt schnellsten.
     
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

Ähnliche Themen

  1. problem/frage zu dateimanipulation
    Von RDK im Forum PHP
    Antworten: 2
    Letzter Beitrag: 10.03.02, 17:28