Avatar billede oergaard Nybegynder
18. august 2003 - 13:30 Der er 19 kommentarer og
1 løsning

Kopiering af en del af en string

Jeg har lavet et lille program, som har en streng der hedder Line. Line kunne f.eks. have følgende værdi : Line := 'Kim|Hansen';

Jeg har løber så strengen igennem for, at finde ud af hvor ”|” forefindes. I dette eksempel vil det så være på position 4, som bliver gemt i I. Dvs. fra Line[1] til Line[I-1] skal kopiers ind i en streng, som jeg kalder ForNavn. Line[I+1] til Length(Line) skal kopiers ind i en streng som jeg kalder EfterNavn

Findes der en smart funktion, som gør ovenstående???

Jeg forestiller mig noget i stil med :
  ForNavn := Copy(Line,0,(I-1));
  EfterNavn := Copy(Line,(I+1),Length(Line));

Har du et eksempel?

Eksemplet er fiktivt, men meningen i mit program er der.

VH

Oergaard
Avatar billede speedy Nybegynder
18. august 2003 - 13:35 #1
lidt komisk du siger det er et fiktivt eksempel, da det faktisk næsten virker :)

Copy er nemlig præcis den funktion du mangler :)

/SpEeDy
Avatar billede speedy Nybegynder
18. august 2003 - 13:37 #2
Nu da jeg har testet den, kan jeg se at den faktisk virker 100% uden ændringer :)

Så du har sådan set selv svaret på dit spørgsmål...hvis du ikke kan få det til at fungere, så skriv bare igen...

/SpEeDy
Avatar billede zerohero Nybegynder
18. august 2003 - 13:45 #3
Hvorfor ikke bare bruge GetShortString og GetLongHint!!!

Line := 'Kim|Hansen';
GetShortHint(Line); //Hiver 'Kim' ud af strengen
GetLongHint(Line); //Hiver 'Hansen' ud af strengen

ZeroHero
Avatar billede oergaard Nybegynder
18. august 2003 - 13:50 #4
SpEeDy

Det vil jeg da lige prøve synes bare ikke at kunne få det til at virke da jeg arbejdede på det i går aftes! Skriver tilbage når jeg har prøvet!

PFT.

/Oergaard
Avatar billede zerohero Nybegynder
18. august 2003 - 13:50 #5
NB: Desuden er det reallativt let at finde positionen af en char.
ShowMessage(IntToStr(Pos('|',Line))); //Viser positionen af '|' i en MessageBox!
Avatar billede oergaard Nybegynder
18. august 2003 - 13:59 #6
Jeg må have lavet noget anderledes i går for har lige skrevet det ind som jeg hele tiden har tænkt det (som jeg skrev i spørgsmålet) og det virker, som det skal!

Sorry Zerohero, bruger min egen kode, da den passer ind i resten af programmet!

Men tak for jeres hurtige svar!
Avatar billede oergaard Nybegynder
18. august 2003 - 14:01 #7
SpEeDy

Kan du ikke lige lave et fiktivt svar, så kan du få pointene så jeg kan få lukket spørgsmålet??

/Oergaard
Avatar billede zerohero Nybegynder
18. august 2003 - 14:03 #8
Hvad skal du bruge det til?
Avatar billede oergaard Nybegynder
18. august 2003 - 14:05 #9
Hvad skal jeg bruge hvad til??
Avatar billede zerohero Nybegynder
18. august 2003 - 14:05 #10
Hvorfor ikke lære kunsten at optimere kode (blive effektiv) i stedet for bare være tilfreds at det virker?
Avatar billede zerohero Nybegynder
18. august 2003 - 14:06 #11
Ja, er det en slags mini-database ting med navne osv.?
Avatar billede oergaard Nybegynder
18. august 2003 - 14:10 #12
For det første fordi jeg finder positionen ved at bruge Pos('|',Line).

For det andet fordi jeg synes at Copy() virker mere overskuelig end hhv. GetShortHint() & GetLongHint().

Måske er det i dine øjne dårligere programmering, men jeg er ikke en haj, så pt. vil jeg gerne have det lidt overskueligt! :-)

/Oergaard
Avatar billede oergaard Nybegynder
18. august 2003 - 14:11 #13
Det er en tekstfil med 10 linier. Før | står der hvad caption på en knap skal være efter | står hvad knappen skal udføre!

/Oergaard
Avatar billede speedy Nybegynder
18. august 2003 - 14:12 #14
oergaard>>Du havde jo selv skrevet løsningen i dit eget spørgsmål så jeg synes du skal tage pointene selv...eller giv det til nogen af de andre forslag :)

/SpEeDy
Avatar billede oergaard Nybegynder
18. august 2003 - 14:13 #15
Det ville jeg egentlig også gerne, men ved ikke hvordan jeg skal lukke spørgsmålet, hvis jeg ikke acceptere et svar!

/Oergaard
Avatar billede speedy Nybegynder
18. august 2003 - 14:14 #16
Du skal bare selv lave et svar i stedet for en kommentar og så acceptere dit eget svar.

/SpEeDy
Avatar billede oergaard Nybegynder
18. august 2003 - 14:16 #17
Det har jeg prøvet, men får ikke muligheden for at lukke spørgsmålet så!
Avatar billede speedy Nybegynder
18. august 2003 - 14:16 #18
Klik Avanceret og vælg dig selv og klik accepter.
Avatar billede oergaard Nybegynder
18. august 2003 - 14:18 #19
Den linie kommer slet ikke frem! Det var det jeg ville have gjort fra starten. Måske er det fordi jeg har afvist svar fra ZeroHero inden jeg selv skrev et svar!
Avatar billede arvad Nybegynder
29. oktober 2003 - 10:43 #20
Du har jeg selv givet løsningen! Er du DUM eller hvad ??
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