» »

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č

dolenc ::

Lahko si tako pomagaš

If nekString Like "*-123456" Then

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,

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 :D

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

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

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 :D

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č

Zgodovina sprememb…

  • spremenilo: primzx ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

If stavki

Oddelek: Programiranje
51056 (772) AndrejS
»

[VB] brisanje polne mape

Oddelek: Programiranje
5737 (664) jishiri
»

Kako do podatka v queryu iz VisualBasicScripta (VBA) v accessu?

Oddelek: Programiranje
112061 (1946) Fim
»

VB in kk dobit Ip od račnalnika

Oddelek: Programiranje
81145 (979) alesrosina
»

vkljucevanje txt datoteke v ...

Oddelek: Programiranje
131503 (1279) webblod

Več podobnih tem