Avatar billede toni01 Nybegynder
23. maj 2001 - 15:06 Der er 17 kommentarer og
1 løsning

checke streng

hejsa

jeg vil gerne checke på om en streng indeholder :\\ eller \\\\.
Avatar billede toni01 Nybegynder
23. maj 2001 - 15:08 #1
Noget i den her stil.

If Not strProjectPath = \"\\\\\" Or strProjectPath = \":\\\" Then
  strProjectPath = GetMyDocuments & \"\\\" & strProjectPath
End If
Avatar billede tdaugaard Nybegynder
23. maj 2001 - 15:09 #2
If InStr(strProjectPath, \"\\\\\") > 0 Or InStr(strProjectPath, \":\\\") > 0 Then
  strProjectPath = GetMyDocuments & \"\\\" & strProjectPath
End If
Avatar billede toni01 Nybegynder
23. maj 2001 - 15:12 #3
Der vil altså blive returneret true hvis \\\\ :\\ findes
Avatar billede toni01 Nybegynder
23. maj 2001 - 15:13 #4
pr default skrives der projekt i registry, med man kan selv gå ind og skrive en fuld sti, hvis man gør det skal man ikke tilføje stien.
Avatar billede terry Ekspert
23. maj 2001 - 15:13 #5
If (InStr(myStr, \":\\\")) Or (InStr(myStr, \"\\\\\")) Then MsgBox \"Found \"

No need to test > 0
Avatar billede tdaugaard Nybegynder
23. maj 2001 - 15:16 #6
toni01:> InStr() returnerer positionen af det første tegn i den anden streng (dvs. InStr(\"Thomas Daugaard\", \"Daug\") vil returnerer postitionen af D)

terry:> JO! (InStr() > 0) vil evaluere til True hvis den ER større en 0 men True = -1.
Avatar billede toni01 Nybegynder
23. maj 2001 - 15:17 #7
der skal vel stadi et not ind, sådan at ifen kun udføres hvis strengen ikke indeholder \\\\ :\\
Avatar billede tdaugaard Nybegynder
23. maj 2001 - 15:19 #8
toni01:> nej, for hvis InStr() = 0 så er der ikke f.eks. \"\\\\\" i, men hvis den er større en 0 så er der.
Avatar billede toni01 Nybegynder
23. maj 2001 - 15:20 #9
Det jeg gerne vil er hvis strengen indeholder er sti lokalt eller på et fælles drev skal den bibeholdes, eller skal man selv tilføje stien til strengen.
Avatar billede toni01 Nybegynder
23. maj 2001 - 15:31 #10
jeg kan ikke få det til at virke

If InStr(strProjectPath, \"\\\\\") > 0 Or InStr(strProjectPath, \":\\\") > 0 Then
  strProjectPath = GetMyDocuments & \"\\\" & strProjectPath
End If

strProjectPath = GetMyDocuments & \"\\\" & strProjectPath udføres selv om strengen indeholder D:\\hgnbv\\fgj

Avatar billede tdaugaard Nybegynder
23. maj 2001 - 15:34 #11
Nåå .. jeg havde overset der IKKE var noget NOT efter OR

If InStr(strProjectPath, \"\\\\\") > 0 And InStr(strProjectPath, \":\\\") = 0 Then
  strProjectPath = GetMyDocuments & \"\\\" & strProjectPath
End If
Avatar billede toni01 Nybegynder
23. maj 2001 - 15:38 #12
der skal stå not begge steder, men if\'en udføres stadigvæk hvistrengen indeholder :\\

eks d:\\test bliver til
d:\\testd:\\projectpath
Avatar billede terry Ekspert
23. maj 2001 - 15:41 #13
tdaugaard
I am aware that True = -1 but as I can only get
0, Null, Start or Position as results, and as = and Null will give False then everything else gives True. True?
Avatar billede terry Ekspert
23. maj 2001 - 15:41 #14
and as 0 and Null will give False
Avatar billede tdaugaard Nybegynder
23. maj 2001 - 15:50 #15
terry:> To maintain compatability for future development environments it is neccessary to have everything evaluated to either True or False in an If-line as the internal value of True might change in the future and therefore fx. 4 will not evaluate to True but to False instead.

I read an article about people defining True as -1 and False as 0, but that should not be done, instead True IS True and False IS false. It is not recommended to define them as a value.

So, bottom line is that InStr(string, string) is NOT recommended to use as an If-expression, instead use (InStr(string, string) > 0) or = 0.
Avatar billede toni01 Nybegynder
23. maj 2001 - 15:54 #16
det her virker

If Not ((InStr(1, strProjectPath, \":\\\") > 0) Or (InStr(1, strProjectPath, \"\\\\\") > 0)) Then
        strProjectPath = GetMyDocuments & \"\\\" & strProjectPath
    End If
Avatar billede toni01 Nybegynder
23. maj 2001 - 15:55 #17
Tak for hjælpen
Avatar billede terry Ekspert
23. maj 2001 - 15:59 #18
The If (InStr(myStr, \":\\\")) statement will always evaluate to either true or false (boolean 0 and -1) no matter what the Instr returns.

And whats the chances of them changing the internal value of true? Its been that way since I start ...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester