Keskusteluforumissa tänne sellaisenaan lähetetty lähdekoodi näyttää ikävältä, kun forumsofta poistaa mielestään merkityksettömät välilyönnit ja tyhjät rivit.
Mutta tässä 2 Delphillä koodattua proseduuria:
procedure AddDots(SL:TStrings); // Lisää jokaisen rivin alkuun merkkijonon '. '
procedure RemoveDots(SL:TStrings); // Poistaa jokaisen rivin alusta merkkijonon '. ', jos ko. merkkijono aloittaa rivin sisällön.
Käyttö hyvin helppoa, esim:
procedure TForm1.bnAddDotsClick(Sender: TObject);
begin
AddDots(Memo1.Lines);
end;
procedure TForm1.bnRemoveDotsClick(Sender: TObject);
begin
RemoveDots(Memo1.Lines);
end;
// em. proseduurit alkavat tästä:
const
cDotStr = '. ';
procedure AddDots(SL:TStrings);
var
i : Integer;
begin
for i := 0 to SL.Count-1 do begin
SL[i] := cDotStr SL[i];
end;
end;
procedure RemoveDots(SL:TStrings);
var
i : Integer;
S : String;
begin
for i := 0 to SL.Count-1 do begin
S := SL[i];
if pos(cDotStr, S) = 1 then begin
system.Delete(S, 1, Length(cDotStr));
SL[i] := S;
end;
end;
end;
Lähdekoodi keskusteluforumissa - pieni työkalu Delphillä
4
105
Vastaukset
- Auttaako_Tämäkään?
Edellä yritin AddDots -proseduuria.
Näköjään ei ollut ihan riittävä toimenpide.
Kokeillaanpa seuraavaa AddDots -proseduuria sen sijasta.
. procedure AddDots2(SL:TStrings);
. var
. i : Integer;
. S : String;
.
. begin
. for i := 0 to SL.Count-1 do begin
. S := SL[i];
. S := StringReplace(S, ' ', ' ', [rfReplaceAll]);
. SL[i] := cDotStr S;
. end;
. end;- Auttaako_Tämäkään
Pieni täydennys:
Ylläolevassa procedure AddDots2(SL:TStrings); -proseduurissa pitäisi olla:
S := StringReplace(S, ' ', '8nbsp;', [rfReplaceAll]);
HUOM: ylläolevassa '8nbsp;' pitäisi olla ' '
eli todennäköisesti näin:
S := StringReplace(S, ' ', ' ', [rfReplaceAll]);
forumsofta siis muokkaa koodia joskus ei-toivotuilla tavoilla. - KoodiForumille !
Auttaako_Tämäkään kirjoitti:
Pieni täydennys:
Ylläolevassa procedure AddDots2(SL:TStrings); -proseduurissa pitäisi olla:
S := StringReplace(S, ' ', '8nbsp;', [rfReplaceAll]);
HUOM: ylläolevassa '8nbsp;' pitäisi olla ' '
eli todennäköisesti näin:
S := StringReplace(S, ' ', ' ', [rfReplaceAll]);
forumsofta siis muokkaa koodia joskus ei-toivotuilla tavoilla.Auttaakohan tämäkään?
Tässä esimerkkikoodia:
procedure Test1;
asm
NOP
end;
Toimiiko sisennykset näin vai eivät ?
Välilyönti =
- No_break space
Sisennykset saa näkymään korvaamalla välilyönnit no-break spacella (ascii 160). Search-replace toimii mainiosti. Erillistä ohjelmaa ei tarvita. Ao. koodiesimerkissä yksi sisennys oli 4 välilyöntiä. Editorissa se tosin taitaa näyttää turhan pitkältä.
procedure RemoveDots(SL:TStrings);
var
i : Integer;
S : String;
begin
for i := 0 to SL.Count-1 do begin
S := SL[i];
if pos(cDotStr, S) = 1 then begin
system.Delete(S, 1, Length(cDotStr));
SL[i] := S;
end;
end;
end;
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Hannu Pikkarainen ehdottomaan vankeuteen
KKO tuomitsi 1 v 9 kk. Tämä ei ole Hannulle ilon päivä.4034558Kuka on mystinen heppamies?
Nyt tänne vinkkejä siitä kuka on Martinan seurassa viihtyvä hevosmiljonääri. On tullut jo muutamia nimiä esiin keskustel1221785- 1381548
Jäätävä epävarmuus
Mistä tää hirveä epävarmuus molemminpuolin johtuu? Pohjimmiltaan uskon, että molemmat tietää, että tunteita on. Vai onko731293Yksi iso yllätys luvassa The Summit Suomi -finaalijaksossa - Tiesitkö nämä Summit-loppukolmikosta?
The Summit Suomi on tarjoillut yllättäviä pudotuksia ja melkoisen määrän pelkkää kisaajien vaelluksen kuvaamista Norjass151116Perjantaita!
Miltä kaivattusi tuoksuu? Tuli mieleen kun täällä usein mainitaan pahasta hajusta. 🤔761113Voi että! Sergey Hilman paljastaa Race Across the World -kuvauksista: "Tämä oli se paras jekku"
Tykätään! Aikamoinen pari tämä Sergey Hilman ja Sini Sabotage - herättävät varmasti vahvoja tunteita suuntaan sun toise131049Ei tullut konkurssia, tuli 3 karhua
Olipas hyvä uutinen. Näin sitä vaan tunnetaan. Persut eivät onnistuneet tuhoamaan.. tätäkään66993- 38970
- 66952