Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Rotiranje fajla

[es] :: Skript jezici :: Rotiranje fajla

Strane: 1 2

[ Pregleda: 5609 | Odgovora: 31 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

tOwk
Danilo Šegan
Zemun/Beograd

Član broj: 94
Poruke: 2743
*.beograd-3.tehnicom.net

ICQ: 9344053
Sajt: alas.matf.bg.ac.yu/~mm011..


+2 Profil

icon Re: Rotiranje fajla24.05.2003. u 02:09 - pre 254 meseci
Pa najbrži rezultat bi bio:
Code:
odavde:
fseek(file,-BLOCKSIZE,SEEK_CUR);
fread(file,BLOCKSIZE,&buf);
buf=spoji(buf,ostalo_iz_prethodnog);
izbacuj_linije_unazad_i_prazni(buf);
ostalo_iz_prethodnog=buf;
goto odavde


Najverovatnije tako tac i radi, ne postoji drugi način koji radi i za ogromne fajlove, a ipak ne žrtvuje brzinu (znači, koristi neki veći blok memorije, i njega obrađuje).

Možda se moje mišljenje promenilo, ali ne i činjenica da sam u pravu.
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.dial.InfoSky.Net

Sajt: localhost


+5 Profil

icon Re: Rotiranje fajla24.05.2003. u 02:23 - pre 254 meseci
prvo, šta tačno podrazumevaš pod "beskonačnim fajlovima", i kako bi bilo koji kod (c, perl, php..) mogao da čita fajl unazad beskonačno..

pa po samoj definiciji bi morao da zna odakle da počne (tj od kraja ;), pa tera unazad do početka, što ni u kom slučaju ne može biti beskonačno..


drugo, što se tiče keširanja, zavisi koju verziju imaš, i kako je podešena, ali dodaj ob_implicit_flush(1); na početak skripte da bi isključio keširanje (mada bi novije verzije php CLI SAPI-a trebale da to imaju isključeno po defaultu)


i na kraju, po kojoj to logici je čitanje bajta po bajt potencijalno najbrže rešenje.. (moj predlog za ubrzanje programa, u bilo kom jeziku. definisati konstantu za buf_size, i čitati od kraja fajla po buf_size bajtova, i okretati ih u memoriji.. experimentalnom metodom utvrditi najbolji buf_size)



btw, sad mi pade na pamet, kako bi preveo "default"?


// edit: evo, sad videh da je u međuvremenu i towk postovao slično kako sam ja predložio.. naravno, pošto je to jedino logično..
 
Odgovor na temu

tOwk
Danilo Šegan
Zemun/Beograd

Član broj: 94
Poruke: 2743
*.beograd-3.tehnicom.net

ICQ: 9344053
Sajt: alas.matf.bg.ac.yu/~mm011..


+2 Profil

icon Re: Rotiranje fajla24.05.2003. u 02:35 - pre 254 meseci
Za „beskonačno“, mislio sam na „nije unapred postavljeno ograničenje veličine fajla“. Svakako, upotreba loše reči, i priznajem da si u pravu :-)

Za „default“: www.prevod.org/recnik/default

Citat:
-zombie-:
// edit: evo, sad videh da je u međuvremenu i towk postovao slično kako sam ja predložio.. naravno, pošto je to jedino logično..


kad je towk veoma logičan tip ;-)

A zapravo, ti si predložio slično kako sam ja poslao, a nisam ja poslao slično kako si ti predložio! Vidimo se u patentnom zavodu za ovako dobar algoritam, pravo prvog je nenadmašno!
Možda se moje mišljenje promenilo, ali ne i činjenica da sam u pravu.
 
Odgovor na temu

Au197/79
Zlatan Kadragić
Minhen

Član broj: 3556
Poruke: 772
*.ptt.yu

Sajt: aurelije.blogspot.com


+47 Profil

icon Re: Rotiranje fajla24.05.2003. u 10:41 - pre 254 meseci
Ovaj kod u pythonu radi suštinski drugačijim algoritmom nego što je to slučaj sa implementacijama u ostalim jezicima pa je rezultate nemoguće porediti. Tako je python ispao sa svih rang lista a na testvima koje sam čitao obično je rame uz rame sa perlom, a ponekad i bolji. Pogledajte http://www.bagley.org/~doug/shootout/ Na osnovu podrazumevane liste gde se meri samo brzina python je na 13. mestu. Čudno da je i tu PHP truba.
Bolje džaba ležat nego džaba radit.
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.racasse.se

Sajt: dejan.lekic.org


+2 Profil

icon Re: Rotiranje fajla26.05.2003. u 18:43 - pre 254 meseci
Au197/79,
zaista, ali ZAISTA ti hvala na linku! ODLICAN JE! Nema veze sto nije povezan sa temom o kojoj pricamo ovde, ali je link vredan pomena stakako - otisao je u moj bookmark ODMAH! :)
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

Au197/79
Zlatan Kadragić
Minhen

Član broj: 3556
Poruke: 772
*.ptt.yu

Sajt: aurelije.blogspot.com


+47 Profil

icon Re: Rotiranje fajla27.05.2003. u 19:07 - pre 254 meseci
Taj link je već neko vreme u smešten u moje bookmarks :)

U prethodnom postu nisam napomenuo da se jezici rangiraju na osnovu nekoliko testova kojima se ocenjuju po važnosti.

Jedan od testova je rotiranje fajla. Tu se mogu videti najbolja rešenja u dosta jezika (+ koji je kompajler ili interpreter korišćen) kao i lista rezultata u brzini i zazeću memorije. Čak se i test podaci menjaju po veličini i može se videti grafik uspešnosti rada sa obimnijim podacima.

Tu je i bash rešenje, ali mi se čini da se loše pokazalo.

Bolje džaba ležat nego džaba radit.
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.telia.com

Sajt: dejan.lekic.org


+2 Profil

icon Re: Rotiranje fajla04.06.2003. u 01:03 - pre 254 meseci
Ovo će na kraju da ode na nešto slično 99 bottles of beer sajtu ( http://99-bottles-of-beer.ls-la.net/ ) koji je naravno odavno u mom bookmark-u :)
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.dial.InfoSky.Net

Sajt: localhost


+5 Profil

icon Re: Rotiranje fajla04.06.2003. u 04:07 - pre 254 meseci
nema ništa od tog sajta.. kad sam video da nema implementacije u mom omiljenom (najlepšem) asembleru za motorolu 68k..

eh.. ;)
 
Odgovor na temu

Ivan Stanojevic
Personal trainer
Dubai

Član broj: 8885
Poruke: 679
*.ppp-bg.sezampro.yu



+1 Profil

icon Re: Rotiranje fajla05.06.2003. u 02:02 - pre 254 meseci
to mozes da uradi siz ASP-a bez problema, samo da mi je znati sta ces dobiti kada izokrenes vrednosti (mislim , za sta ti ovo treba?)?




Reci nešto pametno i svi će te pamtiti
- Nepoznati autor
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.telia.com

Sajt: dejan.lekic.org


+2 Profil

icon Re: Rotiranje fajla05.06.2003. u 07:24 - pre 254 meseci
Pa nikad nije kasno da sedneš i napišeš to...
Citat:
-zombie-:
nema ništa od tog sajta.. kad sam video da nema implementacije u mom omiljenom (najlepšem) asembleru za motorolu 68k..

eh..


Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

Goran Rakić
Beograd

Član broj: 999
Poruke: 3766

Sajt: blog.goranrakic.com


+125 Profil

icon Re: Rotiranje fajla05.06.2003. u 17:10 - pre 254 meseci
Napiši, pa da testiramo (danas podešavam jedan IIS sa PHP-om, taman na istoj mašini...)
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
 
Odgovor na temu

Ivan Stanojevic
Personal trainer
Dubai

Član broj: 8885
Poruke: 679
*.ppp-bg.sezampro.yu



+1 Profil

icon Re: Rotiranje fajla05.06.2003. u 19:36 - pre 254 meseci
nemam vremena , zaista, da se jos i sa tim patim...
otprilike bi islo ovako

1. fajl se podeli na delove , recimo 10 mb...
2. koristi se adoStream da se ucita fajl od 10mb,


Code:

// Strimuj fajl

Dim BinaryStream
Set BinaryStream = CreateObject("ADODB.Stream")
BinaryStream.Mode = 3
BinaryStream.Open
BinaryStream.Type = 1
BinaryStream.position = 0
BinaryStream.LoadFromFile ("c:/temp/delic001.temp")

// zapisi fajl na disk

Dim FS
Set FS = CreateObject("Scripting.FileSystemObject")
  
Dim TextStream
Set TextStream = FS.CreateTextFile("c:/temp/gotovo/" & broj_fajla)
  
TextStream.Write RSBinaryToString(BinaryStream.read)

Response.Flush
BinaryStream.Close
Set BinaryStream = Nothing


ovde ispod sam postavio funkciju koja ce taj strimovani fajl da pretvori u jedan veliki string...

ovu funkciju bi trebalo malo promeniti tako da slaze 'odnapacke' ili napraviti neku drugu funkciju koja ce string da slozi 'odnapacke'

Code:

// Konverzija Raw u String

Function RSBinaryToString(xBinary)
  
  Dim Binary
  If vartype(xBinary)=8 Then Binary = MultiByteToBinary(xBinary) Else Binary = xBinary
  
  Dim RS, LBinary
  Const adLongVarChar = 201
  Set RS = CreateObject("ADODB.Recordset")
  LBinary = LenB(Binary)
  
  If LBinary>0 Then
    RS.Fields.Append "mBinary", adLongVarChar, LBinary
    RS.Open
    RS.AddNew
      RS("mBinary").AppendChunk Binary 
    RS.Update
    RSBinaryToString = RS("mBinary")
  Else
    RSBinaryToString = ""
  End If
End Function

Function MultiByteToBinary(MultiByte)
  Dim RS, LMultiByte, Binary
  Const adLongVarBinary = 205
  Set RS = CreateObject("ADODB.Recordset")
  LMultiByte = LenB(MultiByte)
  If LMultiByte>0 Then
    RS.Fields.Append "mBinary", adLongVarBinary, LMultiByte
    RS.Open
    RS.AddNew
      RS("mBinary").AppendChunk MultiByte & ChrB(0)
    RS.Update
    Binary = RS("mBinary").GetChunk(LMultiByte)
  End If
  MultiByteToBinary = Binary
End Function



3. postupak se ponovi za svaki delic od po 10 mb, kada se svi fajlovi snime, treba ih spojiti od poslednjeg k aprvom, i to snimiti u jedan fajl...

kome treba , moze iskoristiti ovo sto sam napisao da napravi taj skript (i nek mi posalje kopiju)

pozdrav
Reci nešto pametno i svi će te pamtiti
- Nepoznati autor
 
Odgovor na temu

[es] :: Skript jezici :: Rotiranje fajla

Strane: 1 2

[ Pregleda: 5609 | Odgovora: 31 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.