Bosna i Hercegovina



#1 18.03.2018-14:44
Gjoreski Offline
Super Moderator
Registrovan/a od: 02.02.2009-22:24
Komentari: 1,526


Subject: Loop za provera naziv fajlove
Kako napraviti provera na neki fajlovi do ke dodzemo do prvi slobodni fajl.
Na primer:
Kreiramo Excel fajlovi koj moze imati isti naziv kao i neki drugi fajl , mi treba da dodamo broj na ovaj novi fajl uvecan za 1 od najveci.
Test.xls
Test(1).xls
Test(2).xls
Test(3).xls
...
Test(24).xls
Nama sad fajl treba da se zove Test(25).xls
↑  ↓

#2 18.03.2018-18:11
dex Offline
Super Moderator
Registrovan/a od: 23.02.2012-19:59
Komentari: 605


Subject: Re: Loop za provera naziv fajlove
Skoro sam radio nesto slicno ovde

Kod ovog koda, ako fali trojka, a imamo cetvorku, peticu i vece dobice naziv Izvestaj3

Ako zelis prvi slobodan najveci jednostavno izbaci if uslov

DownloadIzvorni kod (Visual Basic):
  1.     Dim Naziv As String
  2.     Dim Putanja As String
  3.     Dim extenzija As String
  4.      
  5.     Putanja = "E:\Izvestaji\"
  6.     Naziv = "Izvestaj"
  7.     extenzija = ".csv"
  8.      
  9.     Dim brojac As Integer
  10.     brojac = 1
  11.      
  12.     Dim strfile As String
  13.     strfile = Dir(Putanja & "*" & extenzija)
  14.      
  15.         While strfile <> ""
  16.            
  17.                 brojac = brojac + 1
  18.            
  19.             strfile = Dir()
  20.         Wend
  21.        
  22.     Putanja = Putanja & Naziv & brojac & extenzija

Medjutim ni ovo ne radi proavilno ako neki fali.
Na primer ako imas 1,2,3,5 dobices rezultat 5. Razmislicu kako da se to resi
Ne znam za sta ti treba, ali mislim da ti ovo prvo zadovoljava potrebe
↑  ↓

#3 18.03.2018-20:44
Gjoreski Offline
Super Moderator
Registrovan/a od: 02.02.2009-22:24
Komentari: 1,526


Subject: Re: Loop za provera naziv fajlove
Imam neki Export u excel e sad naziv tog fajla se formira na osnovu nekolku kriterija.
Nekad se dogodi naslov tog fajla da vec postoi pa sad trazim reseje da se doda jos broj u mali zagrade na novogformiranog fajla.

Ovako kako si postavio e u redu radice ovo ali ovo ih prebroi svi fajlova u taj direktorium i kreira novoi naslov.
Meni treba prebrojati samo smo fajlove koi imaju isti naslov.
↑  ↓

#4 18.03.2018-21:10
Gjoreski Offline
Super Moderator
Registrovan/a od: 02.02.2009-22:24
Komentari: 1,526


Subject: Re: Loop za provera naziv fajlove
evo kako sam ja resio
DownloadIzvorni kod (Visual Basic):
  1.    Dim xlsBrojac As Long
  2.     Dim strXLS As String
  3.     Dim strXLStmp As String
  4.         strXLStmp = Me.cboMagacin.Text & "_" & Me.cboDobavuvac.Text & "_" & Me.txtDataOD & "_" & Me.txtDataDO & ".xls"
  5.         xlsBrojac = 0
  6.         strXLS = strXLStmp
  7.    
  8.  
  9. subProverka:
  10.     Dim fs As New Scripting.FileSystemObject
  11.         If fs.FileExists(ReadIniValue(App.path & "\METMG.ini", "Parametri", "PatekaPDF") & strXLS) Then
  12.            xlsBrojac = xlsBrojac + 1
  13.            strXLS = Left(strXLStmp, Len(strXLStmp) - 4) & "(" & xlsBrojac & ")" & ".xls"
  14.            GoTo subProverka
  15.          Else
  16.            GoTo subExcel
  17.          End If
  18.  
  19. subExcel:
  20.     Dim objExcel As Excel.Application
  21.     Dim wbk As Excel.Workbook
  22.     Dim wsh As Excel.Worksheet
  23.     Set objExcel = CreateObject("Excel.Application")
  24.     Set wbk = objExcel.Workbooks.Add
  25.     Set wsh = wbk.Worksheets("Sheet1")
  26.           wbk.SaveAs ReadIniValue(App.path & "\METMG.ini", "Parametri", "PatekaPDF") & strXLS, FileFormat:=xlExcel8
  27.                 objExcel.Quit

I ovo moe ima mane odnosno mana je u to ako neko pobise neki fajl koj je imao i zagrade neki broj
u tom slucaju program popunece to prazno mesto.
↑  ↓

#5 18.03.2018-22:38
dex Offline
Super Moderator
Registrovan/a od: 23.02.2012-19:59
Komentari: 605


Subject: Re: Loop za provera naziv fajlove
ovo bi trebalo da da sledeci najveci

DownloadIzvorni kod (Visual Basic):
  1. subProverka:
  2.     Dim fs As New Scripting.FileSystemObject
  3.     If fs.FileExists(ReadIniValue(App.Path & "\METMG.ini", "Parametri", "PatekaPDF") & strXLS) Then
  4.        strfile = Dir(Putanja & strXLStmp & "*" & extenzija)
  5.         While strfile <> ""
  6.          If strfile <> strXLStmp & extenzija Then  ' da preskoci fajl koji nama broj u zagradi inace pravi gresku
  7.             trenutni = Left(strfile, Len(strfile) - 5)
  8.              trenutni = Right(trenutni, Len(trenutni) - 5)
  9.              If IsNumeric(trenutni) Then
  10.              broj = CInt(trenutni)
  11.                 If (broj >= brojac) Then
  12.                     brojac = broj + 1
  13.                 End If
  14.              End If
  15.          End If
  16.                  strfile = Dir()
  17.        Wend
  18.     Putanja = Putanja & strXLStmp & "("  & brojac & ")" & extenzija
  19.    End If

Kad sam provio ono moje bilo mi je vazno samo da imaju razlicita imena da ne dodje do overwrite
↑  ↓

#6 18.03.2018-22:58
dex Offline
Super Moderator
Registrovan/a od: 23.02.2012-19:59
Komentari: 605


Subject: Re: Loop za provera naziv fajlove
U redu 8 umesto Len(trenutni) - 5 treba InStr(trenutni,"(")
↑  ↓

#7 18.03.2018-23:04
Gjoreski Offline
Super Moderator
Registrovan/a od: 02.02.2009-22:24
Komentari: 1,526


Subject: Re: Loop za provera naziv fajlove
Za denes dosta e ne mozam da rabotam poveke.
Zdravje ke proveram utre kako raboti ova tvoe.
↑  ↓

#8 19.03.2018-12:16
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,742


Subject: Re: Loop za provera naziv fajlove
DownloadIzvorni kod (Visual Basic):
  1. Function ImeF()
  2. Dim Putanja As String
  3. Dim Faj As String
  4. Dim Ext As String
  5. Dim ImeFajla As String
  6. Dim I As Integer
  7.  
  8. Ext = "txt"
  9. Fajl = "moj"
  10. Putanja = "C:\Temp\"
  11. ImeFajla = Putanja & Fajl & "." & Ext
  12. START:
  13. If Dir(ImeFajla) = "" Then
  14.   ImeF = ImeFajla
  15. Else
  16.  ImeFajla = Putanja & Fajl & "(" & I & ")." & Ext
  17.  I = I + 1
  18.  GoTo START
  19. End If
  20. MsgBox ImeF
  21. End Function

Ako hoces da broji od 1 onda I=I+1 prebaci red prije
Pozdrav
↑  ↓

#9 21.03.2018-16:59
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,742


Subject: Re: Loop za provera naziv fajlove
Ovo niko i na broba izgleda.
Mislim da je bolje rjesenje ali eto to je mozda samo moje misljenje.
Pozdrav
↑  ↓

#10 21.03.2018-18:15
dex Offline
Super Moderator
Registrovan/a od: 23.02.2012-19:59
Komentari: 605


Subject: Re: Loop za provera naziv fajlove
Vrlo elegantno i efektno, Ja u svojpj aplikaciji zamenio tvojim, ali i ovo daje prvi slobodan broj, a kako sam ja razumeo njemu treba najveci
↑  ↓

#11 21.03.2018-22:23
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,742


Subject: Re: Loop za provera naziv fajlove
Aha pa cesto je to problem kod mene u zadnje vrijeme jer ne citam sve.
Izvinjavam se.
Palo mi na pamet pa izgledalo elegantno a mozda i nije.
Pozdrav
↑  ↓

#12 22.03.2018-00:23
Gjoreski Offline
Super Moderator
Registrovan/a od: 02.02.2009-22:24
Komentari: 1,526


Subject: Re: Loop za provera naziv fajlove
Ovaj cod od ZXZ je identican sa onaj koi sam ga ja postavio samo je drugacije postavljen.
On odradi isti posao kao i moj cod.
U svakom slucaju hvala.
Imam ja jos jedna ideja kako napraviti ovo samo sad nemam vremena sad da to pravim.
Kad napravim stavicu cod.
↑  ↓

#13 23.03.2018-14:47
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,742


Subject: Re: Loop za provera naziv fajlove
Vec sam se morao jednom izviniti dex-u zbog mog ne citanja.
Izvinjavam se o tebi.
Ja mislio napravio nesto dobro.
Pozdrav
↑  ↓

Stranice (1): 1


All times are GMT +01:00. Current time: 26.09.2018-01:58.