[ Dacex @ 28.01.2008. 21:33 ] @
Pozdrav svima

Ja sam se tek registrovao pa da kazem par reci o forumu: Forum vam je super (barem VB posto stalno to gledam) ja odavno znam za ovaj forum i uvek sam sve nasao sto mi je trebalo, ali sad nisam :-(

Moj problem je sledeci: Skinuo sam sa jednog Francuskog web sajta jedan projekat sto komunicira sa web kamerom znaci ima opcije: Snimanje slika(to mi nije bitno), snimanja u avi format(e ovo mi je naj bitnije)... i sad oni su postavili jednu poruku koja veoma iritira kada kliknem na snimi( ne znam francuski ali to je drugo dugme ) mozete videti u fajlu original sto sam dodao. I ja sam se tu njakao jedno 3 sata i nasao de su je zavukli okacio sam primer i tu bez poruke, e sad nebi bilo zanimljivo da je tu kraj... trebao bi napraviti kada kliknem na snimi da on snima ovako: 1 put da ime fajlu "video1" drugi put "video2" i tako dokle moze "video1000" ja satim hocu da kad kliknem na snimi da on ne presnimava video preko videa ve da su svi razliciti. Ja znam za onu funkciju
Code:
for i = 1 to 1000 
ali nesto nemogu da je iskoristim :-( Zamolio bih nekoga ako je voljan da mi pomogne da objavi neki kod za ovaj moj slucaj ili da u nekom od dole primera malo pogleda i prepravi.
Havala unapred!



[Ovu poruku je menjao Dacex dana 29.01.2008. u 21:39 GMT+1]
[ Monte12 @ 28.01.2008. 21:39 ] @
Procitaj pravila foruma kodvi su zabranjeni!
[ Dacex @ 28.01.2008. 21:48 ] @
procitao sam gde sam pogresio??

[Ovu poruku je menjao Dacex dana 28.01.2008. u 23:44 GMT+1]
[ Monte12 @ 28.01.2008. 22:08 ] @
OK dobro je kad si vidijo pozz.
[ Dacex @ 29.01.2008. 20:40 ] @
Ajte ljudi jel ima neko nesto??
[ Aleksandar Vasic @ 29.01.2008. 21:35 ] @
Mozes da zapamtis u neki externi fajl do kojeg broja je program stigao,ili da napravis ako fajl pod tim imenom postoji,da stavi neko drugo ime...
[ Dacex @ 29.01.2008. 23:37 ] @
Code:
With CMD                                    'avec la boite de dialogue
    .DialogTitle = "Sauvegarder sous"       'le titre de la boite est "...
    .CancelError = False
    .Filter = "Fichiers AVI |*.avi|"        'on spĂ©cifie le types de fichiers et sa designation
    .FilterIndex = 1                        'le nombre max de fichier a selectionnes
    .InitDir = "C:\"                        'la premiere direction
    .Filename = ""                          'le nom par defaut
    .ShowSave                               'on affiche la boite
End With


If CMD.Filename <> "" Then Filename = CMD.Filename Else Filename = "c:\video.avi"                  'la variable est egale au nom choisi dans la boite

ovaj kod sluzi za snimanje e sad ja sam mislio da to napravim tako sto bi bila jedan if koji bi proveravao dali u folderu ima zapis pod imenom "video1" ako ima on ce dodati jedan pa ce biti "video2" ...... To mi je veliki problem :-( jel mi neko moze pomoci oko ovog??
[ Aleksandar Vasic @ 30.01.2008. 12:47 ] @
imas u FSO komandu FileExist,nju iskoristi,e sad kako ces menjanje imena to smisli nesto ;)
[ Dacex @ 30.01.2008. 19:38 ] @
Jel moze neko upustvo?
[ Aleksandar Vasic @ 30.01.2008. 22:49 ] @
Project > Refereneces > Microsoft Scripting Runtime stiklirash

Code:
Dim fso As New FileSystemObject
If fso.FileExists("X:\nekifajl.ext") Then MsgBox "Fajl postoji"


pa ti izmeni kako ti odgovara
[ Dacex @ 31.01.2008. 10:03 ] @
E hvala bas cu sada probati
[ Dacex @ 31.01.2008. 10:27 ] @
Evo radi :-)
samo gad ovaj kod ukucam
Code:
Dim fso As New FileSystemObject
If fso.FileExists("X:\nekifajl.ext") Then MsgBox "Fajl postoji"
else
msgbox "fajl ne postoji" 
end if


U deburgu mi izmaci gresku, zasto??
[ Aleksandar Vasic @ 31.01.2008. 12:55 ] @
zato sto si trebao da spustis dole prvi msgbox jer ti se sa njim zavrsava komada If ako je u istom redu... uradish ovako

Code:
Dim fso As New FileSystemObject
If fso.FileExists("X:\nekifajl.ext") Then 
MsgBox "Fajl postoji"
Else
MsgBox "Fajl ne postoji" 
End If

[ Dacex @ 31.01.2008. 18:50 ] @
Ala sam glupav :-)
[ Dacex @ 31.01.2008. 20:36 ] @
Code:
Dim i
For i = 1 To 1000

If CMD.Filename <> "" Then Filename = CMD.Filename + (i) Else Filename = "c:\video.avi"

evo neki kod za snimanje pod razlicita imena, ali deburg kaze da to ne moze tako :-( kako onda????
[ galahad @ 01.02.2008. 10:29 ] @
Code:

Dim i
For i = 1 To 1000

If CMD.Filename <> "" Then Filename = CMD.Filename + (i) Else Filename = "c:\video.avi"

Ovo ti nish' ne valja... For petlja mora da ima i Next deo, a ti si ga izostavio... Pravilno bi bilo:
Code:

Dim i
For i = 1 To 1000

If CMD.Filename <> "" Then Filename = CMD.Filename + (i) Else Filename = "c:\video.avi"

Next i

Opet, ne mozhesh da dodajesh broj stringu, odnosno, deo CMD.Filename + (i) tje prouzrokovati type mismatch greshku... Pravilno bi bilo:
Code:

For i = 1 To 1000

If CMD.Filename <> "" Then Filename = CMD.Filename + CStr(i) Else Filename = "c:\video.avi"

Next i

E sad, ovako je ispravan kod, ali tje uraditi sledetje: 1000 puta tje da proveri da li je CMD.Filename <> "", pa ako jeste, promenljivoj Filename tje dodeliti CMD.Filename + vrednost i pretvorena u string, a ako nije 1000 puta tje promenljivu Filename postaviti na vrednost "c:\video.avi".

I kad odradi petlju do kraja, Filename bi imala ili vrednost CMD.Filename + "1000" ili "c:\video.avi"... A to ti ne treba...

Ako hotjesh da svaki put snimi sa drugachijim imenom, pokushaj neshto ovako (Ovaj kod nije testiran, moratjesh proveriti, i mozhda neshto malo izmeniti):
Code:

Filename = "C:\Video.avi"
For i = 1 to 1000
  If Dir("C:\Video" & Padd(i,4) & ".avi") = "" Then
    Filename = "C:\Video" & Padd(i,4) & ".avi"
    Exit for
  End If
Next i

Funkcija Dir je ugradjena u VB i pomotju nje mozhesh da proverish postojanje odredjenog fajla, nema potrebe za korishtjenjem FSO, samo se povetjava distribucija, i stvara zavisnost of MS Scripting biblioteke... Dobra je praksa shto vishe smanjiti zavisnost programa od drugih biblioteka...

Ovaj primer gore, tje da prodje petlju 1000 puta, i da pogleda da li postoji fajl Video####.avi, ako nema, postavlja Filename na odgovarajutje ime, i izlazi iz petlje. Ukoliko petlja dodje do kraja, odnosno postoji 1000 Video####.avi fajlova, Filename ostaje "C:\Video.Avi". Naravno, ovo mozhe da ide na neogranicheni broj, odnosno, da se koristi Do...Loop petlja, sa counterom koji se povetjava u svakom prolazu...

Funkcija Padd je funkcija koju sam ja napisao, da kad mi treba leading ili trailing 0, ne moram svaki put da kuckam kod:
Code:

Public Function Padd(ByVal Num As Long, ByVal Count As Long, Optional ByVal Trailing As Byte = 0) As String
Dim sNum As String

sNum = Trim(CStr(Num))

If Trailing = 0 Then ' Ovde upada ako 0 idu ispred texta
  Padd = String(Count, "0") & sNum
Else ' Ovde upada ako 0 idu iza texta
  Padd = sNum & String(Count, "0")
End If
End Function


Eto, nadam se da je ovo pomoglo...
[ Dacex @ 01.02.2008. 10:39 ] @
Hvala ti care!!! idem sad probati, pa javim.
[ Dacex @ 01.02.2008. 11:07 ] @
Care hvala!!!!!!!!!!!! Program radi besprekorno samo sam bio dodao ono dim i i nista vise radi savrseno.