joomla_antivirus_logo

Autor Tema: Ne pronađe linije u datoteci  (Posjeta: 4471 )

0 Članova i 1 Gost pregledava ovu temu.

erbi

  • Ozbiljan forumaš
  • ****
  • Postova: 368
  • Karma: 0
    • Profil
    • Radio Tomi
Ne pronađe linije u datoteci
« : 05. Rujan 2014, 12:38 »
Pozdrav!
Jedan mali problem. Imam .php skriptu, koja radi ovako:
otvori 2014-09-02.txt, i zapamti si prvu liniju
otvori 2014-09-01.txt, pronađe liniju u kojoj je ovo što ti je zamamtio iz prve datoteke
onda iz 2014-09-01.txt prepiše sve u drugu datoteku. Počne u prvi liniji, ta završi u liniji, gdje prije pronašao.
primjer:
Citat:
2014-09-02
1 podatak
2 podatak
3 podatak
4 podatak

2014-09-01
99 podatak
98 podatak
1 podatak
25 podatak

U izpis če tako iči:
99 podatak
98 podatak
1 podatak

Sada ova skripta ne radi, jer ima u prvom redu 2014-09-02 čć, pa iako je & ne radi.

Hvala na pomoči.

Dario

  • Global Moderator
  • *****
  • Postova: 1.023
  • Karma: 26
  • Web/Joomla Developer
    • Profil
    • dBlaze
Odg: Ne pronađe linije u datoteci
« Odgovori #1 : 08. Rujan 2014, 08:15 »
Moram priznat da baš ne kužim... ima & ili naše znakove u prvom redu ?
Iako zbog ovoga nebi php pucao nikako, pa bi trebalo to malo bolje objasnit....
---
Molim da mi ne šaljete privatne poruke sa zahtjevima za pomoć, takve poruke ignoriram - zato služi forum :)
2b || !2b; this.question();
http://www.dblaze.eu

erbi

  • Ozbiljan forumaš
  • ****
  • Postova: 368
  • Karma: 0
    • Profil
    • Radio Tomi
Odg: Ne pronađe linije u datoteci
« Odgovori #2 : 08. Rujan 2014, 09:25 »
Najprije traži prvi red u datoteci 2. Ako je tamo recimo
Citat:
Tomislav Ivcic - nesto
je OK
ali ako ima
Citat:
Tomislav Ivčić - Neš
ili
Tomislav Ivcic - Nesto & nesto
Ne radi

Dario

  • Global Moderator
  • *****
  • Postova: 1.023
  • Karma: 26
  • Web/Joomla Developer
    • Profil
    • dBlaze
Odg: Ne pronađe linije u datoteci
« Odgovori #3 : 08. Rujan 2014, 11:45 »
Daj da vidimo php kod..... ja sam iskreno i kineski jezik već parsal s php-om i nikad nisam imal nikakvih problema, a najmanje da mi puca skripta zbog toga... Ja bi ipak reko da je negdje drugdje u skripti problem pa puca na drugom mjestu....
---
Molim da mi ne šaljete privatne poruke sa zahtjevima za pomoć, takve poruke ignoriram - zato služi forum :)
2b || !2b; this.question();
http://www.dblaze.eu

erbi

  • Ozbiljan forumaš
  • ****
  • Postova: 368
  • Karma: 0
    • Profil
    • Radio Tomi
Odg: Ne pronađe linije u datoteci
« Odgovori #4 : 08. Rujan 2014, 12:02 »
php kod je u privitku, prvi post (sazas007.php)

erbi

  • Ozbiljan forumaš
  • ****
  • Postova: 368
  • Karma: 0
    • Profil
    • Radio Tomi
Odg: Ne pronađe linije u datoteci
« Odgovori #5 : 14. Rujan 2014, 12:38 »
Niko nezna gdje u php je greška?

Onebeat

  • Global Moderator
  • *****
  • Postova: 730
  • Karma: 10
  • Ajmo sada za ozbiljno....
    • Profil
Odg: Ne pronađe linije u datoteci
« Odgovori #6 : 15. Rujan 2014, 08:13 »
Niko nezna gdje u php je greška?

Koliko sam ja shvatio ti zelis da iz 2014-09-02 datoteke pročita prvi red te onda otvori drugu datoteku i onda...što ?
Truth will set you free

erbi

  • Ozbiljan forumaš
  • ****
  • Postova: 368
  • Karma: 0
    • Profil
    • Radio Tomi
Odg: Ne pronađe linije u datoteci
« Odgovori #7 : 15. Rujan 2014, 08:29 »
Iz 2014-09-02 pročita prvi red i si ga zapamti
Otvori 2014-09-01 i pronađe red u kojem je ovaj zapamčen
Onda copy iz 2014-09-01 u novu datoteku, sve od prvog reda, do reda gdje je pronašao zapamčeno
I tako ide za cjeli mjesec

Onebeat

  • Global Moderator
  • *****
  • Postova: 730
  • Karma: 10
  • Ajmo sada za ozbiljno....
    • Profil
Odg: Ne pronađe linije u datoteci
« Odgovori #8 : 15. Rujan 2014, 09:15 »
Iz 2014-09-02 pročita prvi red i si ga zapamti
Otvori 2014-09-01 i pronađe red u kojem je ovaj zapamčen
Onda copy iz 2014-09-01 u novu datoteku, sve od prvog reda, do reda gdje je pronašao zapamčeno
I tako ide za cjeli mjesec

Pogledaj jel ti ovo ok ?
Truth will set you free

erbi

  • Ozbiljan forumaš
  • ****
  • Postova: 368
  • Karma: 0
    • Profil
    • Radio Tomi
Odg: Ne pronađe linije u datoteci
« Odgovori #9 : 15. Rujan 2014, 09:24 »
sada mi u izpis.txt baci samo prvi red iz 2014-09-01, a ne sve do ovog reda, kojeg je pronašao u 2014-09-02

Onebeat

  • Global Moderator
  • *****
  • Postova: 730
  • Karma: 10
  • Ajmo sada za ozbiljno....
    • Profil
Odg: Ne pronađe linije u datoteci
« Odgovori #10 : 15. Rujan 2014, 09:38 »
sada mi u izpis.txt baci samo prvi red iz 2014-09-01, a ne sve do ovog reda, kojeg je pronašao u 2014-09-02

U koju svrhu koristis uopce ovu skriptu ?

Skripta mi je pokazivala da nije definirana varijabla posljedni_red pa sam je definirao i pogledao sto se dogada sa skriptom.
Truth will set you free

erbi

  • Ozbiljan forumaš
  • ****
  • Postova: 368
  • Karma: 0
    • Profil
    • Radio Tomi
Odg: Ne pronađe linije u datoteci
« Odgovori #11 : 15. Rujan 2014, 09:48 »
Ova skripta služi za ispis. Svaki dan je kreirana playlista u neki txt. Recimo, da se u 23:59:59 završi sa linijom 50, drugi dan je prvi red 51. Program za play, kopira drugi dan sve od prve linije do poslednje u jedan txt.
Sad imamo prvi dan sa 100 linija, a drugi dan isto sa 100 linija. Skripta mora sada pronači prvi red u drugom danu, si ga zapamtiti, i u treči txt kopirati sve od prve linije do ovog zapamčenog podatka. Sve nadalje nije bitno, jer je ide u drugi dan in je u txt-2.

Citat:
Skripta mi je pokazivala da nije definirana varijabla posljedni_red pa sam je definirao i pogledao sto se dogada sa skriptom.
Varijabla nije definisana zbog toga, jer ima u 2014-09-02 č i ć. Ako tega ne bi bilo, varijabla je normalno definirana. I baš ovdje je greška


Onebeat

  • Global Moderator
  • *****
  • Postova: 730
  • Karma: 10
  • Ajmo sada za ozbiljno....
    • Profil
Odg: Ne pronađe linije u datoteci
« Odgovori #12 : 15. Rujan 2014, 09:51 »
Definirao sam vijednost te varijable da bude null te sam onda otvorio text file koji imas te ih prebacio u UTF-8 jer su bili ASCII

Jel ti sada radi skripta ?
Truth will set you free

erbi

  • Ozbiljan forumaš
  • ****
  • Postova: 368
  • Karma: 0
    • Profil
    • Radio Tomi
Odg: Ne pronađe linije u datoteci
« Odgovori #13 : 15. Rujan 2014, 10:00 »
Ako prebacim 2014-09-01 i 2014-09-02 u utf8, onda skripta radi. Jel postoji kakav način, da bi ovo radilo i sa ascii?

Onebeat

  • Global Moderator
  • *****
  • Postova: 730
  • Karma: 10
  • Ajmo sada za ozbiljno....
    • Profil
Odg: Ne pronađe linije u datoteci
« Odgovori #14 : 15. Rujan 2014, 10:05 »
Ako prebacim 2014-09-01 i 2014-09-02 u utf8, onda skripta radi. Jel postoji kakav način, da bi ovo radilo i sa ascii?

Preporučam ti da napravis ovako - svaki put kada skripta se pokrene neka prvo pretvori datoteke u UTF8 pa te napravi overwrite te onda ide dalje ostatak skripte.
Truth will set you free

erbi

  • Ozbiljan forumaš
  • ****
  • Postova: 368
  • Karma: 0
    • Profil
    • Radio Tomi
Odg: Ne pronađe linije u datoteci
« Odgovori #15 : 15. Rujan 2014, 10:09 »
Hvala Onebeat

Dario

  • Global Moderator
  • *****
  • Postova: 1.023
  • Karma: 26
  • Web/Joomla Developer
    • Profil
    • dBlaze
Odg: Ne pronađe linije u datoteci
« Odgovori #16 : 16. Rujan 2014, 14:02 »
Preporučam ti da napraviš ovako - svaki put kada skripta se pokrene neka prvo pretvori datoteke u UTF8 pa te napravi overwrite te onda ide dalje ostatak skripte.

Ni u ludilu to radit.... i onda overwrite-aš originalnu datoteku, a nekaj ne valja -  i gdi si onda?

Jednostavno kad učitaš sadržaj u varijablu
$fp = @fopen($filename_danas, 'r');

obradi taj tekst u varijabli. Budući da vidim da sve nešto svoje učitavaš, dakle uvijek će dolaziti datoteka u istom formatu snimljena, napraviš samo
$fp = iconv('ASCII', 'UTF-8//IGNORE', $fp);
... i trebalo bi radit...
« Zadnja izmjena: 16. Rujan 2014, 14:04 Dario »
---
Molim da mi ne šaljete privatne poruke sa zahtjevima za pomoć, takve poruke ignoriram - zato služi forum :)
2b || !2b; this.question();
http://www.dblaze.eu

Onebeat

  • Global Moderator
  • *****
  • Postova: 730
  • Karma: 10
  • Ajmo sada za ozbiljno....
    • Profil
Odg: Ne pronađe linije u datoteci
« Odgovori #17 : 16. Rujan 2014, 14:06 »
Ni u ludilu to radit.... i onda overwrite-aš originalnu datoteku, a nekaj ne valja -  i gdi si onda?

Slican princip koji sam tu napisao koristim kod jednog svog rješenja i nemam nikakvih problema jer ako nesto dobro slozis onda ide glatko...
Truth will set you free

erbi

  • Ozbiljan forumaš
  • ****
  • Postova: 368
  • Karma: 0
    • Profil
    • Radio Tomi
Odg: Ne pronađe linije u datoteci
« Odgovori #18 : 16. Rujan 2014, 14:11 »
@Dario:
Ovaj convert sam pokušao, a ne radi. Zanimljivo je to, da kad otvorim datoteku sa editorom, kaže mi da je format ANSI, a kad jo otvorim sa php, kaže da je utf-8

Nešto sam brklao i liniju:
if (strpos(htmlspecialchars($line), $prvi_next_day) !== false)
promjenio u:
if (strpos($line, $prvi_next_day) !== false)
i radi. Možda samo za sada i mi opet javi grešu kad budem u gužvi  ;D

 

joomla_antivirus_logo