6 berichten aan het bekijken - 1 tot 6 (van in totaal 6)
  • Q:
    Bijdrager
    macbos

    Nummers veranderen in een tekstbestand

    Ik heb een tekst bestand met oplopende factuurnummers van 357 naar 445.
    Nu wil ik met zoek en vervang deze nummers aanpassen van 1 – 88

    Weet iemand hoe dit moet.

    Alvast zeer veel dank.

    Bijdrager
    Jakko Westerbeke

    Hoe staan die nummers erin? Begint elke regel met een nummer en daarna wat meer tekst op de rest van de regel?

    Als er verder helemaal geen cijfers in het bestand staan kun je gewoon alle cijfers zoeken en vervangen door niks (tien keer “Vervang alles” met elke keer een ander cijfer) en dan in bijvoorbeeld een tekstverwerker regelnummers toevoegen, waarna je het exporteert naar een tekstbestand. Er zullen wel andere manieren zijn, maar deze schiet me zo te binnen.

    Het zal ook wel mogelijk zijn met sed maar ik krijg bijna hoofdpijn van dat soort programma’s en de voorbeelden ervoor … Nieuwe regelnummers in de terminal lukt me dan nog wel:

    cat -b Factuur.txt > "Factuur genummerd.txt"

    :)

    Bijdrager
    macbos

    Dag Jakko,

    Bedankt voor je reactie.

    Is zoek eigenlijk iets waar mee ik:

    Factuurnummer 345 Factuurnummer 346 etc…

    Kan vervangen door

    Factuurnummer 1 Factuurnummer 2 etc…

    De factuurnummers staat kris/kras door het tekst bestand.

    Ik moet iets gebruiken met wildcards…maar hoe precies weet ik echt niet.

    Geblokkeerd
    Anoniem

    Dat worden twee arrays, plus een loopje…

    Pseudo code:

    <br />
    orig-array vullen met 357-455<br />
    new-array vullen met 1-88</p>
    <p>index=0<br />
    FOR nummer in orig-array[$index]<br />
    do<br />
    sed globalreplace "factuurnummer $nummer" "factuurnummer new-arrya[$index]"<br />
    done<br />
     

    Kan met Perl, kan met PHP, kan zelfs met een shell script.

    EDIT:
    Kan zelfs zonder arrays… Duh!

    Pseudo code:

    <br />
    orignum=455<br />
    newnum=1<br />
    WHILE newnum -lt 89<br />
    do<br />
    sed globalreplace "factuurnummer $orignum" "factuurnummer $newnum"<br />
    orignum=$orignum+1<br />
    newnum=$newnum+1<br />
    done<br />
     
    Bijdrager
    macbos

    Bedankt,

    Maar hoe kan ik de php code op een html bestand loslaten?

    Geblokkeerd
    Anoniem

    Voorbeeldje gevonden op Experts Exchange. Is alleen een voorbeeld, zal nog aanpassingen voor jou nodig hebben, voornamelijk die loop om de nummerseries te doorlopen. Het gedeelte dat je moet loopen heb ik aangegeven.

    Daar naast kan je de fopen voor het wegschrijven van het resultaat ook naar een andere file laten schrijven, zodat je het origineel niet overschrijft.

    <br />
    $file = 'myfile.txt';<br />
    $content = file_get_contents($file);<br />
    // START LOOP<br />
    $myvar = 'something new';<br />
    $content = str_replace('something',$myvar, $content);<br />
    // END LOOP<br />
    $f = fopen($file,'w');<br />
    if($f) {<br />
      fwrite($f, $content);<br />
      fclose($f);<br />
    } else {<br />
      echo 'failed to update file';<br />
    }<br />
     

    EDIT:
    Klote CODE tags! Een dubbele enter maken zij maar meteen een ENDPAR/BEGINPAR van *grrr* Dat schiet toch niet op?!!!

6 berichten aan het bekijken - 1 tot 6 (van in totaal 6)

Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.