11. oktober 1999 - 09:49Der er
10 kommentarer og 1 løsning
70
Hvordan for jeg delphi til at formatere en text til når jeg trykker på en knap så formatere den en text der står i en memo så hver ? . , ! kommer til at stå med et mellem rumme eksempel.
En knap(button1) og en memo (memo1) ------------ procedure TForm1.Button1Click(Sender: TObject); var i,k:integer; s:string; begin For i:=0 to memo1.lines.count-1 do begin k:=2; s:=memo1.lines[i]; while k<=length(s) do begin if s[k] in ['?' , '.' , ',' , '!'] then if s[k-1]<>' ' then s:=copy(s,1,k-1)+' '+copy(s,k,length(s)); inc(k); end; memo1.lines[i]:=s; end; end;
Her er koden igen, denne gang med kommentar undervejs: -------------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject); var i,k:integer; s:string; begin //For alle linie i memo1 For i:=0 to memo1.lines.count-1 do begin //K = det tegn den skal start med at kikke på //Grunden til at k ikke start på 1 er: //1. Det koster mere kode (en extra tjek for om "s[k-1]") går godt //2. En linie skal ikke starte med et mellemrum? k:=2; //s er kortere end at skrive memo1.lines[i] alle steder :) s:=memo1.lines[i]; // kør hele s-stringen igennem og.. while k<=length(s) do begin //.. kik efter '?' '.' ',' og '!' if s[k] in ['?' , '.' , ',' , '!'] then //Hvis der findes et af tegne og der ikke allerede //er mellemrum foran så.. if s[k-1]<>' ' then //.. sæt et mellemrun ind foran s:=copy(s,1,k-1)+' '+copy(s,k,length(s)); //Næste tegn i linien inc(k); end; //Færdig med den linie, sæt den tilbage i memo1 memo1.lines[i]:=s; end; //Færdig end;
Synes godt om
Slettet bruger
13. oktober 1999 - 19:07#10
det må du undskylle jeg havde skrevte programmeringskoden forkert
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.