/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
Burde være nemt, men det virker ikke
Fra : svend bendt


Dato : 28-02-04 14:58

Simpel function til at udtrække måneden fra en String formet således
24-02-2004.
Functionen ser således ud

Private Function getMonth(ByVal dato As String) As Integer
Dim tmp As String = ""
Dim første As Integer = dato.IndexOf("-")
Dim sidste As Integer = dato.LastIndexOf("-")
Dim i As Integer
For i = (første + 1) To i < sidste
tmp += CStr(dato.Chars(i))
Next i
getMonth = CInt(tmp)
End Function

'i' i løkken skulle så gerne køre fra 3 til mindre end 5, men den komme
aldrig ind i løkken, så hverken i stiger, og tmp forbliver tom, men er er 3,
og sidste er 5, så jeg forstår det ikke.

need help



 
 
Jens Vestergaard (28-02-2004)
Kommentar
Fra : Jens Vestergaard


Dato : 28-02-04 15:14

"svend bendt" <s@b.k> skrev i en meddelelse
news:c1q6p4$1p00$1@news.cybercity.dk...
> Simpel function til at udtrække måneden fra en String formet således
> 24-02-2004.
> Functionen ser således ud
[snip]

Du er vist rent sprogmæssigt havnet i en gal gruppe - min VB vil i hvert
fald ikke kendes ved din syntax...

Kender intet til .NET, men hvis det er det, så er der en dotnet-gruppe, hvor
det sikkert er bedre at spørge - umiddelbart ser det imidlertid ud til, at
TO-delen af din løkke returnerer enten True eller False, og så løber løkken
jo ikke ret langt...

--
mvh
Jens Vestergaard (mailadr i dette indlæg er ikke gyldig!)
www.railsoft.dk
Døgnets jernbanenyheder: www.railsoft.dk/medier.asp



svend bendt (28-02-2004)
Kommentar
Fra : svend bendt


Dato : 28-02-04 15:26


"Jens Vestergaard" <j@railsoft.dk> skrev i en meddelelse
news:4040a210$0$55933$edfadb0f@dtext01.news.tele.dk...
> "svend bendt" <s@b.k> skrev i en meddelelse
> news:c1q6p4$1p00$1@news.cybercity.dk...
> > Simpel function til at udtrække måneden fra en String formet således
> > 24-02-2004.
> > Functionen ser således ud
> [snip]
>
> Du er vist rent sprogmæssigt havnet i en gal gruppe - min VB vil i hvert
> fald ikke kendes ved din syntax...
>
> Kender intet til .NET, men hvis det er det, så er der en dotnet-gruppe,
hvor
> det sikkert er bedre at spørge - umiddelbart ser det imidlertid ud til, at
> TO-delen af din løkke returnerer enten True eller False, og så løber
løkken
> jo ikke ret langt...
>
> --
> mvh
> Jens Vestergaard (mailadr i dette indlæg er ikke gyldig!)
> www.railsoft.dk
> Døgnets jernbanenyheder: www.railsoft.dk/medier.asp
>
Takker, det var TO delen der fuckede op, blandede java og VB sammen



preben nielsen (29-02-2004)
Kommentar
Fra : preben nielsen


Dato : 29-02-04 09:34


"svend bendt" <s@b.k> skrev i en meddelelse
news:c1q6p4$1p00$1@news.cybercity.dk...
> Simpel function til at udtrække måneden fra en String formet
således
> 24-02-2004.
> Functionen ser således ud
>
> Private Function getMonth(ByVal dato As String) As Integer
> Dim tmp As String = ""
> Dim første As Integer = dato.IndexOf("-")
> Dim sidste As Integer = dato.LastIndexOf("-")
> Dim i As Integer
> For i = (første + 1) To i < sidste
> tmp += CStr(dato.Chars(i))
> Next i
> getMonth = CInt(tmp)
> End Function

Du er vist ude i VB.NET her... Hvorfor lave det så besværligt ? Er
måneden ikke altid tegn 4-5 ? Uanset hvad, så behøver du ikke en
løkke:

Private Function getMonth(ByVal dato As String) As Integer
Dim første As Integer = dato.IndexOf("-")
Dim sidste As Integer = dato.LastIndexOf("-")
getMonth = CInt(dato.Substring(første + 1, sidste - første -
1))
End Function

--
/\ preben nielsen
\/\ prel@post.tele.dk



Harald Staff (29-02-2004)
Kommentar
Fra : Harald Staff


Dato : 29-02-04 10:53

Eller ennå mindre besværligt:

Private Function getMonth(ByVal dato As String) As Integer
On Error Resume Next
getMonth = Month(DateValue(dato))
End Function

Sub test()
MsgBox getMonth("29-februar-2004")
MsgBox getMonth("29.2 2004")
MsgBox getMonth("Februar 04")
MsgBox getMonth("Ukendt dato")
End Sub

--
HTH. Beste hilsen Harald
Followup to newsgroup only please.

"preben nielsen" <prel@post.tele.dk> wrote in message
news:4041a406$0$1552$edfadb0f@dread14.news.tele.dk...
>
> "svend bendt" <s@b.k> skrev i en meddelelse
> news:c1q6p4$1p00$1@news.cybercity.dk...
> > Simpel function til at udtrække måneden fra en String formet
> således
> > 24-02-2004.
> > Functionen ser således ud
> >
> > Private Function getMonth(ByVal dato As String) As Integer
> > Dim tmp As String = ""
> > Dim første As Integer = dato.IndexOf("-")
> > Dim sidste As Integer = dato.LastIndexOf("-")
> > Dim i As Integer
> > For i = (første + 1) To i < sidste
> > tmp += CStr(dato.Chars(i))
> > Next i
> > getMonth = CInt(tmp)
> > End Function
>
> Du er vist ude i VB.NET her... Hvorfor lave det så besværligt ? Er
> måneden ikke altid tegn 4-5 ? Uanset hvad, så behøver du ikke en
> løkke:
>
> Private Function getMonth(ByVal dato As String) As Integer
> Dim første As Integer = dato.IndexOf("-")
> Dim sidste As Integer = dato.LastIndexOf("-")
> getMonth = CInt(dato.Substring(første + 1, sidste - første -
> 1))
> End Function
>
> --
> /\ preben nielsen
> \/\ prel@post.tele.dk
>
>



preben nielsen (29-02-2004)
Kommentar
Fra : preben nielsen


Dato : 29-02-04 11:55


"Harald Staff" <innocent@enron.invalid> skrev i en meddelelse
news:c1scfd$1lq$1@services.kq.no...
> Eller ennå mindre besværligt:
>
> Private Function getMonth(ByVal dato As String) As Integer
> On Error Resume Next
> getMonth = Month(DateValue(dato))
> End Function

Men det der er VB6 Du kan ikke være sikker på at det virker
med VB.NET og slet ikke med at det virker med dd-mm-åååå (afhængig
af lokale indstillinger).


--
/\ preben nielsen
\/\ prel@post.tele.dk



Harald Staff (29-02-2004)
Kommentar
Fra : Harald Staff


Dato : 29-02-04 16:20

"preben nielsen" <prel@post.tele.dk> wrote in message
news:4041c4fd$0$1635$edfadb0f@dread14.news.tele.dk...

> Men det der er VB6 Du kan ikke være sikker på at det virker
> med VB.NET

Sant nok -Svend skriver ikke hvorvidt han benytter 6 eller net eller hva. On Error
fungerer så vidt jeg vet ikke i net.

og slet ikke med at det virker med dd-mm-åååå (afhængig
> af lokale indstillinger).

Man har all grunn til å anta at den datostreng som mottas er i et format som maskinen
benytter -programmet skal også sikre det for å fungere tilfredsstillende. 24-02-2004 er
meningsløst på et amerikansk oppsett og skal ikke forekomme. Bare ideen om at dato er en
String og ikke en Date er en stor feilkilde i seg selv.

--
HTH. Beste hilsen Harald
Followup to newsgroup only please.



preben nielsen (29-02-2004)
Kommentar
Fra : preben nielsen


Dato : 29-02-04 17:29

"Harald Staff" <innocent@enron.invalid> skrev i en meddelelse
news:c1svl4$poi$1@services.kq.no...

> > Men det der er VB6 Du kan ikke være sikker på at det
virker
> > med VB.NET
>
> Sant nok -Svend skriver ikke hvorvidt han benytter 6 eller net
eller hva. On Error
> fungerer så vidt jeg vet ikke i net.

Det fremgår af syntaksen En string er jo et object i hans
kode.

> Man har all grunn til å anta at den datostreng som mottas er i
et format som maskinen
> benytter

Nej tværtimod. Jeg modtager dagligt data med 3 forskellige
dato-formater, og ingen af dem er normalt dansk format.

> Bare ideen om at dato er en String og ikke en Date er en stor
feilkilde i seg selv.

Der er vi helt enige !

Mvh.
/\ preben nielsen
\/\ prel@post.tele.dk



Harald Staff (29-02-2004)
Kommentar
Fra : Harald Staff


Dato : 29-02-04 17:53



--
HTH. Beste hilsen Harald
Followup to newsgroup only please.

"preben nielsen" <prel@post.tele.dk> wrote in message
news:40421369$0$1572$edfadb0f@dread14.news.tele.dk...

> Det fremgår af syntaksen En string er jo et object i hans
> kode.

Vel, sitat:
" blandede java og VB sammen"
så syntaksen kan man i hvert fall ikke lese noget ut av

> > Man har all grunn til å anta at den datostreng som mottas er i
> et format som maskinen
> > benytter
>
> Nej tværtimod. Jeg modtager dagligt data med 3 forskellige
> dato-formater, og ingen af dem er normalt dansk format.

Du har selvfølgelig rett. Å importere tekstfiler fra fjerne kilder er et verre problem
både med datoer og tall. Hva annet kan man si en at det er en dårlig ide og et elendig
design. Som vi allikevel er nødt til å leve med i mange tilfeller.

Beste hilsen Harald



preben nielsen (01-03-2004)
Kommentar
Fra : preben nielsen


Dato : 01-03-04 16:58


"Harald Staff" <innocent@enron.invalid> skrev i en meddelelse
news:c1t53o$c1r$1@services.kq.no...

> > Det fremgår af syntaksen En string er jo et object i hans
> > kode.
>
> Vel, sitat:
> " blandede java og VB sammen"
> så syntaksen kan man i hvert fall ikke lese noget ut av

Dim første As Integer = dato.IndexOf("-")
Dim sidste As Integer = dato.LastIndexOf("-")

Dette er VB.Net

mvh.


--
/\ preben nielsen
\/\ prel@post.tele.dk



KS (01-03-2004)
Kommentar
Fra : KS


Dato : 01-03-04 17:49

Det er vist ikke godt at bruge danske tegn i navngivningen !

mvh KS

"preben nielsen" <prel@post.tele.dk> skrev i en meddelelse
news:40435d7e$0$1670$edfadb0f@dread14.news.tele.dk...
>
> "Harald Staff" <innocent@enron.invalid> skrev i en meddelelse
> news:c1t53o$c1r$1@services.kq.no...
>
> > > Det fremgår af syntaksen En string er jo et object i hans
> > > kode.
> >
> > Vel, sitat:
> > " blandede java og VB sammen"
> > så syntaksen kan man i hvert fall ikke lese noget ut av
>
> Dim første As Integer = dato.IndexOf("-")
> Dim sidste As Integer = dato.LastIndexOf("-")
>
> Dette er VB.Net
>
> mvh.
>
>
> --
> /\ preben nielsen
> \/\ prel@post.tele.dk
>
>



Tomas Christiansen (01-03-2004)
Kommentar
Fra : Tomas Christiansen


Dato : 01-03-04 21:21

KS skrev:
> Det er vist ikke godt at bruge danske tegn i navngivningen !

Siden hvornår?
Det har da virket fint i VB not .net i 10 år (mindst).

-------
Tomas


Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408182
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste