Lähdekoodi keskusteluforumissa - pieni työkalu Delphillä

SiistiKoodiForumille

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;

4

109

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • 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

    1. Tänään pyörit ajatuksissa enemmän, kun erehdyin lukemaan palstaa

      En saisi, silti toivon että sinä vielä palaat ja otetaan oikeasti selvää, hioituuko särmät ja sulaudummeko yhteen. Vuod
      Ikävä
      22
      5194
    2. Huomenta ihana

      Kauniskasvoinen ihanuus 😘 saan sut vielä
      Ikävä
      25
      4378
    3. Hei rakas...

      Miten on työpäivä sujunut? Rakastan sinua 💗
      Ikävä
      27
      2501
    4. Edelleen sitä on vaikea uskoa

      Että olisit oikeasti rakastunut muhun
      Ikävä
      34
      2264
    5. Toiveikas vai toivoton

      torstai? Ajatuksia?
      Ikävä
      37
      1998
    6. Vitsi mihin menit. Heti takasin.

      Mä näin sut tuu takasin! Oli kiire, niin en ehtiny sin perään!
      Ikävä
      15
      1918
    7. En ole koskaan kokenut

      Ennen mitään tällaista rakastumista. Tiedän että kaipaan sinua varmaan loppu elämän. Toivottavasti ei tarvitsisi vain ka
      Ikävä
      19
      1607
    8. Mukavaa päivää

      Mun rakkauden kohteelle ❤️ toivottavasti olet onnellinen
      Ikävä
      12
      1531
    9. Voi ei! Jari Sillanpää heitti keikan Helsingissä - Hämmästyttävä hetki lavalla...

      Ex-tangokuningas on parhaillaan konserttikiertueella. Hän esiintyi Savoy teatterissa äitienpäivänä. Sillanpää jakoi kons
      Suomalaiset julkkikset
      21
      1267
    10. Kerranki asiat oikein

      Ilkka ja muut pienpuolueeet...teitte hyvän työn kun valitsitte pätevän henkilön virkaan eikä kepulle passelia!! Jatkakaa
      Haapavesi
      10
      1174
    Aihe