Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

Nadgledanje i obrada txt fajla cija se duzina stalno povecava

  • 7 odgovora
  • 5.352 pregleda

Najnovija ↓

Nadgledanje i obrada txt fajla cija se duzina stalno povecava 24.01.2004. u 12:21 · pre 277 meseci #1
Pozdrav ljudi!

Interesuje me da li ste se sretali (i kako resavali) problem sledece vrste.
Na hardu se nalazi fajl koji sluzi kao svojevrstan log file. U njega se neprestano dodaju redovi podataka odredjene strukture. Zadatak je da se napravi program koji "nadgleda" taj log fajl, iscitava novoupisane redove i to kasnije prosledjuje negde (recimo u excell tabelicu ili negde slicno).
Moja razmisljanja: posto log fajl moze da raste meni nepoznato koliko, iscitavanje broja linija, pa poredjenje sa prethodno obradjenim brojem pa kasnije obrada svega toga je pretpostavljam neupotrebljiva (ili nije).
Stoga, ima li neko neku ideju?

S postovanjem,
Ivan.
Re: Nadgledanje i obrada txt fajla cija se duzina stalno povecava 25.01.2004. u 16:11 · pre 277 meseci #2
Za taj log fajl bi mozda zgodnije bilo koristiti XML umesto .txt fajla, jer je sa XMLom (bar po meni) lagodnije raditi. Taj XML bi mogao da izgleda ovako nekako:

Code:

<LogData>
    <LogItem ..... />
    <LogItem ..... />
    <LogItem ..... />
    <LogItem ..... />
</LogData>


E sad svaki LogItem cvor moze da ima atribut Processed="True/False", koji kaze da li je obradjen ili ne. Ili jos bolje, da root node ima atribut koji predstavlja informaciju o poslednjem obradjenom cvoru, posto sa ovakvom strukturom mozes pristupiti cvoru na osnovu rednog broja.

Code:

<LogData LastProcessed ="12">
    <LogItem ..... />
    <LogItem ..... />
    <LogItem ..... />
    <LogItem ..... />
</LogData>


Kad pocnes obradu log fajla, ucitas XML u DOMDocument, i pristupis LastProcessed+1 cvoru i od njega radis obradu. Ne moras da vodis racuna o broju linija i sl.

Ako ne mozes da koristis xml umesto txt, onda probaj da negde u fajlu (na pocetku?) cuvas informaciju o poslednjem obradjenom zapisu, ili da svaki zapis ima informaciju o tome da li je obradjen ili ne.
Potpis
Blue Man Group
Re: Nadgledanje i obrada txt fajla cija se duzina stalno povecava 25.01.2004. u 18:49 · pre 277 meseci #3
Za taj log fajl bi mozda zgodnije bilo koristiti XML umesto .txt fajla, jer je sa XMLom (bar po meni) lagodnije raditi. Taj XML bi mogao da izgleda ovako nekako:

Nazalost ne moze. Taj tzv. Log file generise PLC u toku procese proizvodnje te i sama mogucnost uticaja na format toga "cuda" nije realna. Znaci rade se o txt (ni sam ne znam da li je svaki red formatizovan ili je nesto zbudzeno)
Re: Nadgledanje i obrada txt fajla cija se duzina stalno povecava 26.01.2004. u 17:27 · pre 277 meseci #5
Koriscenje GoTo statementa bez potrebe je jako losa praksa.

Citat:
MSDN:
Too many GoTo statements can make code difficult to read and debug. Use structured control statements (Do...Loop, For...Next, If...Then...Else, Select Case) whenever possible.


Code:

    FNum = FreeFile
    
    Open FileName For Input As FNum

    While Not EOF(FNum)
        Line Input #FNum, Lin
        
        ' radi nesto
    Wend

    Close FNum
Potpis
Blue Man Group
Re: Nadgledanje i obrada txt fajla cija se duzina stalno povecava 26.01.2004. u 22:27 · pre 277 meseci #7
Citat:
mladenovicz:
Koriscenje GoTo statementa bez potrebe je jako losa praksa.

Citat:
MSDN:
Too many GoTo statements can make code difficult to read and debug. Use structured control statements (Do...Loop, For...Next, If...Then...Else, Select Case) whenever possible.


Code:

    FNum = FreeFile
    
    Open FileName For Input As FNum

    While Not EOF(FNum)
        Line Input #FNum, Lin
        
        ' radi nesto
    Wend

    Close FNum


Koliko razumem: Fajl se otvara periodicno i sekvencijalno iscitava od pocetka, liniju po liniju. Ok, neki brojac toliko si linija iscitao u prethodnoj iteraciji. Ali, ovo bi valjalo da se preskoci, tj. to sto sam iscitao u prethodnoj iteraciji i da se nastavi od mesta gde je nekada bio EOF bez nekih line input - wend "praznih" petlji.

Ivan.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme