Avatar billede simonth Nybegynder
25. juli 2006 - 11:35 Der er 20 kommentarer og
2 løsninger

Funktion alt efter nr 15 (ligesom substr i php)

Hej.

Jeg søger en funktion i .Net (ligesom man bruger substr i php) der kan "udskrive" alt efter tegn nr. f.eks. 15.
Så hvis jeg har følgende string:
1234567890123456789
Så vil jeg have de sidste "6789" ud, altså dvs.
123456789012345------6789
Efter tegn nummer 15 vil jeg have alt efter det ud.
Hvordan gør man det?
60 point for hurtigt og godt svar.
Avatar billede simonth Nybegynder
25. juli 2006 - 11:43 #2
Ok, tak.
Kan du komme med et eksempel?
Et eksempel på hvordan jeg får 6789 ud af 1234567890123456789.
Avatar billede mcgoat Nybegynder
25. juli 2006 - 11:44 #3
String test = "1234567890123456789";
Console.WriteLine(test.Substring(15,test.Length));

tror jeg nok :P
Avatar billede mcgoat Nybegynder
25. juli 2006 - 11:48 #4
String test = "1234567890123456789";
Console.WriteLine(test.Substring(15, test.Length-15));

Må det selvfølgelig blive :)
Avatar billede simonth Nybegynder
25. juli 2006 - 12:53 #5
Den kommer med følgende fejl (Jeg er nybegynder - og kan iørvigt ikke finde nogen artikler om VB.Net program programmering så derfor ved jeg næsten ikke noget om det):
http://simonth.futte.dk/fejl1.jpg
Avatar billede mcgoat Nybegynder
25. juli 2006 - 13:05 #6
D'oh.. selvfølgelig fordi jeg har lavet det til C# ...

laver det lige om :)
Avatar billede mcgoat Nybegynder
25. juli 2006 - 13:07 #7
Dim test As String = "1234567890123456789"
test = test.SubString(15, test.Length-15)
Avatar billede arne_v Ekspert
25. juli 2006 - 13:08 #8
test = test.SubString(15)

bør være nok
Avatar billede mcgoat Nybegynder
25. juli 2006 - 13:14 #9
true :) , var også mere for at give indblik i hvordan man bruger det hvis man skal have noget "i midten" :)
Avatar billede mcgoat Nybegynder
25. juli 2006 - 13:15 #10
Avatar billede simonth Nybegynder
25. juli 2006 - 13:53 #11
Takker mange gange, det virker.
Kan i ikke lige også hurtigt fortælle mig om der er en "find" funktion, så hvis man f.eks. har følgende:
"hejabcmeddig" og man så vil finde abc i teksten og udskrive det kun, altså så den udskriver:
"abc"
hvordan gør man det? Er der en funktion til det?
En funktion der kan finde noget tekst i en tekst.

Jeg kan evt. hæve point hvis i også kan svare på mit nye spørgsmål.
Avatar billede simonth Nybegynder
25. juli 2006 - 13:55 #12
Doh, jeg var vist lidt for hurtig. Der står muligvis noget om en find funktion på det der link mcgoat kom med, undskyld. Jeg ser lige om jeg kan hitte ud af det der står, ellers må i meget gerne komme med et eksempel ligesom det andet.
Avatar billede arne_v Ekspert
25. juli 2006 - 14:02 #13
nemlig

IndexOf
Avatar billede simonth Nybegynder
25. juli 2006 - 14:02 #14
Har prøvet følgende

Dim smsbesked As Integer = serialPort.ReadLine & serialPort.ReadLine
                    SMSLabel.Text = smsbesked.IndexOf("4D4F29C0E")

Men den skriver
'IndexOf' is not a member of 'Integer'

serialport.readline/smsbesked indeholder
"+CMGL: 3,1,,22
06915404939099240A91549229895500006070523122928004D4F29C0E"
og den skal finde "4D4F29C0E"
Avatar billede simonth Nybegynder
25. juli 2006 - 14:03 #15
Heh "sygt" nok, vi tilføjede vores beskeder på præcis samme tidspunkt arne_v..
Avatar billede simonth Nybegynder
25. juli 2006 - 14:06 #16
Men burde min, overstående kode, ikke virke?
Avatar billede arne_v Ekspert
25. juli 2006 - 14:13 #17
prøv

Dim smsbesked As String
Avatar billede simonth Nybegynder
25. juli 2006 - 14:17 #18
Ok, har prøvet.
Dim smsbesked As String = "06915404939099040A91549228667300006070523124448004D4F29C0E"
                    Dim smsbeskedtest As String = "4D4F29C0E"
                    SMSLabel.Text = smsbesked.IndexOf(smsbeskedtest)

Men så udskriver den bare "49" ??
Avatar billede simonth Nybegynder
25. juli 2006 - 14:24 #19
Ah..... Den udskriver hvor det er, har jeg lige læst..hmm og så skal jeg vel samtidig stadig bruge  substring? prøver lige..
Avatar billede simonth Nybegynder
25. juli 2006 - 14:30 #20
Ok, kom lige i tanke om noget..
Nu bruger jeg følgende kode:
    Dim smsbesked As String = serialPort.ReadLine
                    SMSLabel.Text = smsbesked.Substring(64)
                    serialPort.ReadLine()
                    serialPort.Write("ATI" & vbCrLf)

men den melder fejl:
startIndex cannot be larger than length of string.
Parameter name: startIndex
Avatar billede simonth Nybegynder
25. juli 2006 - 14:34 #21
Hmm, undskyld igen igen.

Jeg lærer vist af mine fejl.
Jeg er alt alt alt for hurtig til at skrive at der er fejl og bede om hjælp her på sitet. Jeg har jo gentagne gange i dette spørgsmål selv fundet ud af fejlen, jeg må prøve at lære at være mindre utålmodig og prøve mig mere frem før jeg spørger om hjælp igen.
Avatar billede mcgoat Nybegynder
25. juli 2006 - 17:33 #22
smider lige et svar forresten hvis det kunne bruges :)
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