tiedoston nimeäminen juoksevana lukuna

einari ei tiedä

miten voin tallentaa tiedostoja niin että ensimmäisen nimi on 1.txt toinen 2.txt kolmas 3.txt neljäskymmenestoinen 42.txt ja niin edelleen? kiitos vastauksista!

4

403

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Jaska Perusjaska

      Ihan tuo onnistuu perus-toistorakenteita käyttämällä. Yksinkertaisimmillaan for-looppi joka tallentaa jokaisella kierroksella uuden tiedoston laskurin arvon mukaan.

      Tuollaisella luupilla ei tosin tee juurikaan mitään. Taitaisi vain kaataa selaimet ja palvelimet...

      Haluat varmaan ensin aina tarkistaa, mikä numero on viimeisin ja tallentaa uuden tiedoston lisäämällä arvoon yhden? Katsopa noita viestiketjuja vähän matkaan taaksepäin. Siellä oli muistaakseni vastaava kysymys vastauksineen.

      • ...

        "Haluat varmaan ensin aina tarkistaa, mikä numero on viimeisin ja tallentaa uuden tiedoston lisäämällä arvoon yhden? Katsopa noita viestiketjuja vähän matkaan taaksepäin. Siellä oli muistaakseni vastaava kysymys vastauksineen."

        Mutta onko tuo PHP:llä lainkaan mahdollista? Mitä tapahtuu jos kaksi vierailijaa tulee samalla hetkellä?

        Esim. viimeisin tiedosto on tiedosto55.txt. PHP1 on instanssi joka palvelee käyttäjää 1, PHP2 on käyttäjää2. PHP1 etsii viimeisen tiedoston, samaan aikaan PHP2 tekee saman. Molemmat löytävät tiedosto55.txt, joten molemmat luovat tiedosto56.txt... Parhaimmassa tapauksessa toisen käyttäjän tiedosto siis häviää kokonaan.


      • Jaska Perusjaska
        ... kirjoitti:

        "Haluat varmaan ensin aina tarkistaa, mikä numero on viimeisin ja tallentaa uuden tiedoston lisäämällä arvoon yhden? Katsopa noita viestiketjuja vähän matkaan taaksepäin. Siellä oli muistaakseni vastaava kysymys vastauksineen."

        Mutta onko tuo PHP:llä lainkaan mahdollista? Mitä tapahtuu jos kaksi vierailijaa tulee samalla hetkellä?

        Esim. viimeisin tiedosto on tiedosto55.txt. PHP1 on instanssi joka palvelee käyttäjää 1, PHP2 on käyttäjää2. PHP1 etsii viimeisen tiedoston, samaan aikaan PHP2 tekee saman. Molemmat löytävät tiedosto55.txt, joten molemmat luovat tiedosto56.txt... Parhaimmassa tapauksessa toisen käyttäjän tiedosto siis häviää kokonaan.

        Tiedostot ovat vähän hankalia juurikin tuosta syystä. Tietokanta on hieman varmempi tapa.

        Tiedoston ainakin voi lukita scriptin ajon ajaksi. En tiedä mitä tapahtuu jos kaksi käyttäjää yrittää lukita tiedostoa täsmälleen samaan aikaan millisekunnin tarkkuudella. Luultavasti molemmat epäonnistuu ja tulee virheilmoitus. Mutta kyllä tuo ainakin vähentää ongelman mahdollisuutta.

        Hyvin epätodennäköistähän tuo on, mutta jos käyttäjiä on paljon samaan aikaan, niin riski on toki olemassa.

        Minulla on hyvin vähän (ts. ollenkaan) kokemusta tuollaisten julkisten megapalveluiden tekemisestä, joten en tämän parempia vinkkejä osaa antaa. Tähän mennessä kaikki ovat toimineet jopa ilman tiedostojen lukitsemistakin. Sen vain tiedän, että ruuhkat aiheuttavat monesti arvaamattomia ongelmia.


      • ...
        Jaska Perusjaska kirjoitti:

        Tiedostot ovat vähän hankalia juurikin tuosta syystä. Tietokanta on hieman varmempi tapa.

        Tiedoston ainakin voi lukita scriptin ajon ajaksi. En tiedä mitä tapahtuu jos kaksi käyttäjää yrittää lukita tiedostoa täsmälleen samaan aikaan millisekunnin tarkkuudella. Luultavasti molemmat epäonnistuu ja tulee virheilmoitus. Mutta kyllä tuo ainakin vähentää ongelman mahdollisuutta.

        Hyvin epätodennäköistähän tuo on, mutta jos käyttäjiä on paljon samaan aikaan, niin riski on toki olemassa.

        Minulla on hyvin vähän (ts. ollenkaan) kokemusta tuollaisten julkisten megapalveluiden tekemisestä, joten en tämän parempia vinkkejä osaa antaa. Tähän mennessä kaikki ovat toimineet jopa ilman tiedostojen lukitsemistakin. Sen vain tiedän, että ruuhkat aiheuttavat monesti arvaamattomia ongelmia.

        Ei tarvitse edes olla 'megapalvelu'. Vaikka pieni käyttäjän internet-yhteyden tökähtäminen ja kaksi pyyntöä suoritetaankin samanaikaisesti.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Vihreiden, SDP:n ja Vasemmistoliiton kannattajista selvästi alle puolet on miehiä

      ja silti joku punafeministi valitti kokoomuksen naiskannattajien puutteesta, vaikka siellä on enemmän naisia kuin punavi
      Maailman menoa
      83
      2716
    2. On tiedossa, että venäjämieliset diggaavat diktatuurista venäjää

      jossa ei esim. ole sanan- ja lehdistönvapautta. Mutta keitä nämä venäjän palvojat sitten ovat, ei heitä toki paljon ole
      Maailman menoa
      58
      2634
    3. Ensin Henry Novak ja nyt sitten se Irlannin tapaus

      jossa mustaihoinen afrikkalainen mieshenkilö puukottaa valkoihoista maassa makaavaa miestä useita kertoa pään alueelle.
      Maailman menoa
      70
      2594
    4. Belfastissa käynnissä kunnon persuilu

      Joku random mamu tekee rikoksen, niin sikäläiset naamiopersut kostavat tuhoamalla kantaävestön omaisuutta. Liekö siellä
      Maailman menoa
      96
      2547
    5. Tytti Tuppurainen: Suomen pakolaiskiintiö pitäisi nostaa 10 000 vuodessa

      asia on faktaa, noin Tytti sanoi aiemmin. Kun taas Orpon hallitusohjelman mukaisesti Suomen pakolaiskiintiö on pudotettu
      Maailman menoa
      88
      2065
    6. Islamovasemmistolaisuus - tälläista termiä käytetään

      Termi tarkoittaa alunperin äärivasemmiston ja muslimifundamentalistien liittoa, jonka ytimessä oli antisemitismi. Isl
      Maailman menoa
      50
      2012
    7. Persujen kannatusromahdus tekee kesästä 2026 nautinnollisen

      Satoi tai paistoi, niin Suomen kansalaisella on kuluvana kesänä syytä hymyyn. Niin upealta tuntuu persujen kannatusroma
      Maailman menoa
      141
      1866
    8. Joskus tulee niin

      Yksinäinen olo. Ei ole tarpeeksi ihmisiä elämässä, jotka tuntuisivat välitttävän aidosti. Jos mä ny saisin sairaskohtauk
      Ikävä
      51
      1500
    9. Julkista rahaa ei tule antaa senttiäkään yksityisille yrityksille

      Julkinen raha on meidän yhteistä rahaa, ja se raha on tarkoitettu yhteiseen käyttöön, kuten esimerkiksi tuottamaan palve
      Maailman menoa
      33
      1459
    10. Mitä tapahtui?

      Mitä tapahtui keskiviikkoiltana kun oli paljon hälytysajoneuvoja ja mediheli?
      Kiuruvesi
      16
      1456
    Aihe