Om en sträng består av fler än 15 tecken, vill jag korta av strängen vid det 15:e tecknet och lägga till .... Om strängen är kortare än 15 tecken, så skall inget läggas till.
Följde länken i svaret och läste lite om 'length' och 'substr'.
Förstår ändå inte hur jag skall göra?
Om jag exempelvis vill ta bort det första tecknet, och det två sista tecknen ur en sträng, hur skriver man då?
Man tar ju först reda på strängens längd. Sedan tar man bort första tecknet med hjälp av 'mid', och följer upp med att ta bort de två sista tecknen, även då med 'mid'.
Men jag förstår inte riktigt hur jag skall skriva/koda detta i perl?
Okm en sträng ser ut så här +OK 52 2364. Hur skriver man då exempelvis för att ta ut det som finns efter det andra mellanslaget? (I detta fall 2364)
Skulle vilja räkna ut vart andra mellanslkaget sitter med hjälp av 'instr'. Därefter ta hjälp av mid, som tar ut det som finns från andra mellanslagets placering, och till placeringen av sista tecknet, som man får fran med hjälpa av 'mid'.
Hur fungerar 'left', 'right', 'mid' och 'lengt' i perl?
Alltså, vi börjar läsa från position 1 (inte 0 som är först) och läser längden på strängen minus 3(vi tar bort 1 tecken i början och 2 i slutet=3 tecken)
Okm en sträng ser ut så här +OK 52 2364. Hur skriver man då exempelvis för att ta ut det som finns efter det andra mellanslaget? (I detta fall 2364)
Här anger vi en limit var vi vill börja läsa från, vilken vi räknar ut med index, alltså första förekomsten av " " + 1. Vi sätter alltså limiten till första tecknet efter " " där vi vill leta efter " ". Vilket gör den andra förekomsten av " ". Sedan har vi utelämnat length som är optional, och läser således till slutet av strängen.
Tillägg:
Detta kan man även lösa med s.k. regular expression, men nu var det ju substr() och index() vi tittade på.
my $name = 'fred';
substr($name, 4) = 'dy'; # $name is now 'freddy'
my $null = substr $name, 6, 2; # returns '' (no warning)
my $oops = substr $name, 7; # returns undef, with warning
substr($name, 7) = 'gap'; # fatal error
Problemet när man söker i perlhandbok eller i dokumentation, är att den ibland är så opedagogiskt upplagd.
Tycker att ditt exempel är bra mycket bättre och lättbegripligt än det som fanns i perldokumentationen.
Tack för din tid!
[Redigerat av Brian den 12 nov 2001]
266 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a