Erstatning af tegn

Tags:    delphi

User
Bruger #797 @ 14.04.02 20:15
Jeg er i gang med et program, der skal kunne ændre nogle form filer.

Det skal selv kunne erstatte nogle tegn.

Jeg har brugt denne kode til erstatning af enkelte tegn.

_______________________________________________________
begin
case S[I] of
'=': S := Copy(S, 1, I - 1) + ': ' +
Copy(S, I + 1, Length(S) - I);
'+': S := Copy(S, 1, I - 1) + ' ' +
Copy(S, I + 1, Length(S) - I);
'&': S := Copy(S, 1, I - 1) + ' ' +
Copy(S, I + 1, Length(S) - I);

end;
_______________________________________________________

Men hvad gør jeg hvis jeg skal erstatte 3-4 tegn?

-Og hvirdan får jeg den til at indsætte et linjeskift i stedet for et andet tegn?





3 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Jeg er i gang med et program, der skal kunne ændre nogle form filer.

Det skal selv kunne erstatte nogle tegn.

Jeg har brugt denne kode til erstatning af enkelte tegn.

_______________________________________________________
begin
case S[I] of
'=': S := Copy(S, 1, I - 1) + ': ' +
Copy(S, I + 1, Length(S) - I);
'+': S := Copy(S, 1, I - 1) + ' ' +
Copy(S, I + 1, Length(S) - I);
'&': S := Copy(S, 1, I - 1) + ' ' +
Copy(S, I + 1, Length(S) - I);

end;
_______________________________________________________

Men hvad gør jeg hvis jeg skal erstatte 3-4 tegn?

-Og hvirdan får jeg den til at indsætte et linjeskift i stedet for et andet tegn?



For at erstatte bestemte tegn i en streng med andre tegn, skal du bruge StringReplace. Fx:

StringReplace(S, 'old', 'new', [rfReplaceAll, rfIgnoreCase]);

Erstatter alle forekomster af ordet old med ordet new i strengen S.

Linieskift kan du lave ved at indsætte #10#13, f.eks. S := 'ny'+#13#10+'linie';

/data






Jeg er i gang med et program, der skal kunne ændre nogle form filer.

Det skal selv kunne erstatte nogle tegn.

Jeg har brugt denne kode til erstatning af enkelte tegn.

_______________________________________________________
begin
case S[I] of
'=': S := Copy(S, 1, I - 1) + ': ' +
Copy(S, I + 1, Length(S) - I);
'+': S := Copy(S, 1, I - 1) + ' ' +
Copy(S, I + 1, Length(S) - I);
'&': S := Copy(S, 1, I - 1) + ' ' +
Copy(S, I + 1, Length(S) - I);

end;
_______________________________________________________

Men hvad gør jeg hvis jeg skal erstatte 3-4 tegn?

-Og hvirdan får jeg den til at indsætte et linjeskift i stedet for et andet tegn?


Det virker umiddelbart som om du er nød til at bruge If commandoer.

Hvis du skal have et linje skift skal du bruge #13#10
ex. '1st line' + #13#10 + '2nd line'

Why Aren't You Coding ?
Aaangel



User
Bruger #797 @ 29.04.02 14:31
Hvordan skal jeg bruge commandoen if i dette tilfælde?



t