Forum » Programiranje » VB6 poljuben string
VB6 poljuben string
primzx ::
Lep pozdrav!
Imam eno vprašanje glede VB6.
Delam mrežno aplikacijo, ki dodaja/ustvarja mape/datoteke v mreži. Problem imam ko želim ustvariti mapo, ki ima npr:
TipPralniStroj-123456
Rad pa bi tole
*-123456
Kaj bi v kodi nadomestil:
If p.FolderExists(PotDo & "\" & ServerStranke & "\" & * & "-" & Sn) Then
MsgBox ("Serijska obstaja v Bazi, AMPAK preveri za kater pralni stroj!")
GoTo konec
End If
TipPralnegaStroja je string, ki ga vpiše uporabnik. Serijska je pa pač taka kot je in jo uporabnik/vsi uporabniki, vpišejo točno tako kot je. Ker je TipPralnegaStroja, vedno drgačen(vsakuporabnik svoje piše), je serijska edino ista in bi zato preverjal če serijka(oz. tip pralnega stroja) že obstaja v bazi ali ne.
Namesto TipPralnegaStroja bi dal Zvezdico, oz. pač nek string(nas ne zanima). Kako to spisati v kodi?(Ziher je neumno vprašanje, ampak raje prašam!)
LP in hvala za pomoč
Imam eno vprašanje glede VB6.
Delam mrežno aplikacijo, ki dodaja/ustvarja mape/datoteke v mreži. Problem imam ko želim ustvariti mapo, ki ima npr:
TipPralniStroj-123456
Rad pa bi tole
*-123456
Kaj bi v kodi nadomestil:
If p.FolderExists(PotDo & "\" & ServerStranke & "\" & * & "-" & Sn) Then
MsgBox ("Serijska obstaja v Bazi, AMPAK preveri za kater pralni stroj!")
GoTo konec
End If
TipPralnegaStroja je string, ki ga vpiše uporabnik. Serijska je pa pač taka kot je in jo uporabnik/vsi uporabniki, vpišejo točno tako kot je. Ker je TipPralnegaStroja, vedno drgačen(vsakuporabnik svoje piše), je serijska edino ista in bi zato preverjal če serijka(oz. tip pralnega stroja) že obstaja v bazi ali ne.
Namesto TipPralnegaStroja bi dal Zvezdico, oz. pač nek string(nas ne zanima). Kako to spisati v kodi?(Ziher je neumno vprašanje, ampak raje prašam!)
LP in hvala za pomoč
primzx ::
Jah, sam to je J*** veter, ker neveš kaj bo uporabnik vpisal notr.
Aja probal sem tudi tole
Dim NekString
NekString =""
ServerStranke & "\" & NekString & "-" & Sn
Vendar mi sevede, logično, javi da ne najde naslova, ko želi kreirati mapo. Zanima me če lahko sploh kontroliraš en delček zankov v stringu?
Hvala,
Aja probal sem tudi tole
Dim NekString
NekString =""
ServerStranke & "\" & NekString & "-" & Sn
Vendar mi sevede, logično, javi da ne najde naslova, ko želi kreirati mapo. Zanima me če lahko sploh kontroliraš en delček zankov v stringu?
Hvala,
dolenc ::
Seveda lahko, lahko jih razbiješ z left(), right() in mid() funkcijo. Pri mid moraš vedet dolžino ali pa jo nekak določit, se pravi mora biti zapis stalno enako dolg.
Recimo če je serijska številka stalno isto dolga, odšteješ celotnemu stringu right(Sn, 7) in dobiš ven samoTipPralniStroj. 7 zato da odstraniš še tist minus.
Lahko potem tudi tist moj like daš v tvoj if pogoj, tako da mu daš še en AND Like tistoKarSemNapisal.
Al pa en temp string, pa daš
if tempString like "*-123456" then
temp2 = "*"
else
"ne obstajam še"
end if
pa potem spodaj svoj zgornji if
If p.FolderExists(PotDo & "\" & ServerStranke & "\" & temp2 & "-" & Sn) Then
ps. tista zvezdica ni to kar bi ti rad nadomestil, ampak to razumeš kot string "biloKeraVsebinaNaDesni -123456".
Upam da nisem preveč zmedeno napisal.
Uglavnem možnosti imaš veliko
ps2, se popravljam tist tvoj if v prvi vrsti daš tko
if tempString like "*-123456" then
temp2 = "*"
If p.FolderExists(PotDo & "\" & ServerStranke & "\" & temp2 & "-" & Sn)
In potem se ti pali samo takrat ko imaš že obstoječega, če pa uporabnik vpiše kar neki pa niti ne vpliva, sej če prov razumem je ravno to poanta, da on vpisuje tipe pralnih strojev, serijske pa so fiksne?
Recimo če je serijska številka stalno isto dolga, odšteješ celotnemu stringu right(Sn, 7) in dobiš ven samoTipPralniStroj. 7 zato da odstraniš še tist minus.
Lahko potem tudi tist moj like daš v tvoj if pogoj, tako da mu daš še en AND Like tistoKarSemNapisal.
Al pa en temp string, pa daš
if tempString like "*-123456" then
temp2 = "*"
else
"ne obstajam še"
end if
pa potem spodaj svoj zgornji if
If p.FolderExists(PotDo & "\" & ServerStranke & "\" & temp2 & "-" & Sn) Then
ps. tista zvezdica ni to kar bi ti rad nadomestil, ampak to razumeš kot string "biloKeraVsebinaNaDesni -123456".
Upam da nisem preveč zmedeno napisal.
Uglavnem možnosti imaš veliko
ps2, se popravljam tist tvoj if v prvi vrsti daš tko
if tempString like "*-123456" then
temp2 = "*"
If p.FolderExists(PotDo & "\" & ServerStranke & "\" & temp2 & "-" & Sn)
In potem se ti pali samo takrat ko imaš že obstoječega, če pa uporabnik vpiše kar neki pa niti ne vpliva, sej če prov razumem je ravno to poanta, da on vpisuje tipe pralnih strojev, serijske pa so fiksne?
Zgodovina sprememb…
- spremenil: dolenc ()
primzx ::
Najprej hvala za tvoje predloge. Odločil sem se za razbijanje stringov z Right funkcijo, tako da nakoncu dobim serijsko št. (določil z dolžino 6 znakov), neglede nato kaj piše v ime/naziv stranke ali ime naziv pralnega stroja. Do sedaj sem naredil tole:
Dim p As Scripting.FileSystemObject
Set p = New Scripting.FileSystemObject
Dim ServerStranke 'nova stranka
Dim PotDo 'pod do že obstoječe baze strank
Dim Stroj 'tip stroja
Dim Sn 'serijska pstroja
pStroj = Text2.Text
Sn = Text3.Text
ServerStranke = Text9.Text
DolzinaSn = 6
ServerSInpStrojInSn = ServerStranke & "\" & pStroj & "-" & Sn
PreveriSn = (Right(ServerSInpStrojInSn, DolzinaSn))
'Preveri SN
If p.FolderExists(PotDo & "\" & PreveriSn) Then
MsgBox ("SN OBSTAJA. Info: Serijska št. je od stroja " & pStroj & ", Stranka " & ServerStranke & ".")
Else
MsgBox ("Serijska št. " & Sn & " NE OBSTAJA za nobeno stranko!")
End If
Vprašanje:
Ko vpišem recimo podatek v Sn(text3.text objekt) ki ima 6 zankov, npr 123456, si sevede VB zapomni tole: 123456. Ampak mi noče preverit folder z tem stringom?Ali VB ve da ima ves določen naslov v tem primeru:
ServerStranke/pStroj-Sn(jemlje seveda samo Sn z desne proti levi)?
Hvala in lep pozdrav
Dim p As Scripting.FileSystemObject
Set p = New Scripting.FileSystemObject
Dim ServerStranke 'nova stranka
Dim PotDo 'pod do že obstoječe baze strank
Dim Stroj 'tip stroja
Dim Sn 'serijska pstroja
pStroj = Text2.Text
Sn = Text3.Text
ServerStranke = Text9.Text
DolzinaSn = 6
ServerSInpStrojInSn = ServerStranke & "\" & pStroj & "-" & Sn
PreveriSn = (Right(ServerSInpStrojInSn, DolzinaSn))
'Preveri SN
If p.FolderExists(PotDo & "\" & PreveriSn) Then
MsgBox ("SN OBSTAJA. Info: Serijska št. je od stroja " & pStroj & ", Stranka " & ServerStranke & ".")
Else
MsgBox ("Serijska št. " & Sn & " NE OBSTAJA za nobeno stranko!")
End If
Vprašanje:
Ko vpišem recimo podatek v Sn(text3.text objekt) ki ima 6 zankov, npr 123456, si sevede VB zapomni tole: 123456. Ampak mi noče preverit folder z tem stringom?Ali VB ve da ima ves določen naslov v tem primeru:
ServerStranke/pStroj-Sn(jemlje seveda samo Sn z desne proti levi)?
Hvala in lep pozdrav
Zgodovina sprememb…
- spremenilo: primzx ()
primzx ::
Še nečesa ne razumem. Kako bom VB-ju povedal, da gre za "kreno" stranko in "kren" pralni stroj?
Kako pa potem v windowsih SEARCH funkcija dela, če vpiše samo en integer?
LP
Kako pa potem v windowsih SEARCH funkcija dela, če vpiše samo en integer?
LP
dolenc ::
Priznam da ne zastopim dobro kaj točno te zanima.
Ampak lahko zaloopaš skozi vse folderje, pa da jih preverja, če bi rad imel nekakšen search. Če dela lokalno bi moralo še kar hitro delat.
Da ima pa vb celotni naslov pa tko preverjaj da ga shranjuješ v eno spremenljivko pa potem z debugerjem preverjaj katere vrednosti drži. Če ni cel si lahko spet z "like" pomagaš, pa bo iskal podobne zapise.
Če veš kaj se skriva za serijskoŠt v naprej, lahko narediš case stavke, pa potem po tem javlaš za kero stvar gre.
Še ena varjanta je, da vse zapise zapišeš še v lokalni dataSet in potem lahko po tem brskaš z sqlom, tko si olajšaš zadeve pri branju(lahko uporabiš where), moraš pa dodat pisanje v dataset za vsako mapo (mogoče kompliciranje za brez veze).
Pa še tole če boš dobil kako idejo. Sicer za delo z datotekami, ampak lepo tudi imena map pobira.
Če ti kaj pomaga, upam da rešiš problem
Ampak lahko zaloopaš skozi vse folderje, pa da jih preverja, če bi rad imel nekakšen search. Če dela lokalno bi moralo še kar hitro delat.
Da ima pa vb celotni naslov pa tko preverjaj da ga shranjuješ v eno spremenljivko pa potem z debugerjem preverjaj katere vrednosti drži. Če ni cel si lahko spet z "like" pomagaš, pa bo iskal podobne zapise.
Če veš kaj se skriva za serijskoŠt v naprej, lahko narediš case stavke, pa potem po tem javlaš za kero stvar gre.
Še ena varjanta je, da vse zapise zapišeš še v lokalni dataSet in potem lahko po tem brskaš z sqlom, tko si olajšaš zadeve pri branju(lahko uporabiš where), moraš pa dodat pisanje v dataset za vsako mapo (mogoče kompliciranje za brez veze).
Pa še tole če boš dobil kako idejo. Sicer za delo z datotekami, ampak lepo tudi imena map pobira.
Če ti kaj pomaga, upam da rešiš problem
primzx ::
Dim p As Scripting.FileSystemObject
Set p = New Scripting.FileSystemObject
Dim ServerStranke 'nova stranka
Dim PotDo 'pod do že obstoječe baze strank
PotDo = Text10.Text
Sn = Text3.Text
Stranke = Text9.Text
pStroj = Text2.Text
DolzinaSn = 6
PreveriSn = Right(PotDo & "\" & Stranke & "\" & pStroj & "-" & Sn, DolzinaSn)
'Tukej bi moral povedat da za variablo Stranke is like "*" in isto za pStroj is like "*", ker drugace
mi vrže tole: \\-
MsgBox (PreveriSn)
'Temp2 = Stroj Like "*" & Stroj & "*"
'temp3 = ServerStranke Like "*"
'Preveri Serijsko številko stroja
If Not p.FolderExists(PreveriSn) Then
MsgBox ("Sn " & Text9.Text & " NE obstaja v Bazi!"), vbInformation, ""
ElseIf p.FolderExists(PreveriSn) Then
MsgBox ("Sn " & Text3.Text & " že obstaja v Bazi!"), vbInformation, ""
Else
MsgBox ("Sn še ni bila dodana!")
End If
A bi se dalo to spisat še v BatchFajlu?
LP in hvala za pomoč
Set p = New Scripting.FileSystemObject
Dim ServerStranke 'nova stranka
Dim PotDo 'pod do že obstoječe baze strank
PotDo = Text10.Text
Sn = Text3.Text
Stranke = Text9.Text
pStroj = Text2.Text
DolzinaSn = 6
PreveriSn = Right(PotDo & "\" & Stranke & "\" & pStroj & "-" & Sn, DolzinaSn)
'Tukej bi moral povedat da za variablo Stranke is like "*" in isto za pStroj is like "*", ker drugace
mi vrže tole: \\-
MsgBox (PreveriSn)
'Temp2 = Stroj Like "*" & Stroj & "*"
'temp3 = ServerStranke Like "*"
'Preveri Serijsko številko stroja
If Not p.FolderExists(PreveriSn) Then
MsgBox ("Sn " & Text9.Text & " NE obstaja v Bazi!"), vbInformation, ""
ElseIf p.FolderExists(PreveriSn) Then
MsgBox ("Sn " & Text3.Text & " že obstaja v Bazi!"), vbInformation, ""
Else
MsgBox ("Sn še ni bila dodana!")
End If
A bi se dalo to spisat še v BatchFajlu?
LP in hvala za pomoč
Zgodovina sprememb…
- spremenilo: primzx ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | If stavkiOddelek: Programiranje | 1130 (846) | AndrejS |
» | [VB] brisanje polne mapeOddelek: Programiranje | 784 (711) | jishiri |
» | Kako do podatka v queryu iz VisualBasicScripta (VBA) v accessu?Oddelek: Programiranje | 2171 (2056) | Fim |
» | VB in kk dobit Ip od račnalnikaOddelek: Programiranje | 1212 (1046) | alesrosina |
» | vkljucevanje txt datoteke v ...Oddelek: Programiranje | 1587 (1363) | webblod |