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

136

    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. Sanna Marin kysyi hämmästyneenä: Onko Suomessa jäänmurtajia?

      Nettilehden toimittaja kysyi Sanna Marinilta suoraan, että sovittiinko nuo jäänmurtajien kaupat jo 2019, jolloin Marin k
      Maailman menoa
      171
      5217
    2. Voiko normaali ihminen ryhtyä vasemmistolaiseksi?

      Tätä jäin pohdiskelemaan.
      Maailman menoa
      197
      4117
    3. SDP haluaa 40 000 nettomaahanmuuttajaa

      SDP:n Suunnanmuutos-vaihtoehtobudjetissa, käy ilmi, että demarit itse asiassa vaativat räjähdysmäistä ”työperäisen” maah
      Maailman menoa
      140
      3725
    4. Orpo: Velkajarrua vastustavaa puoluetta vaikea ajatella hallitukseen

      No Minja Koskelan kommunistipuolue jäi ulos tuosta. Kaikki eduskuntapuolueet vasemmistoliittoa lukuun ottamatta sopivat
      Maailman menoa
      65
      3072
    5. Mikä tuota vasemmistolaisista jankkaavaa vaivaa?

      Pahasti on ihon alle, siis korvien väliin, päässeet kummittelemaan. Ei ole terveen ihmisen merkki jankata yhdestä asia
      Maailman menoa
      53
      3010
    6. Mitä ajattelit kun näit

      kaivattusi ensimmäisen kerran? xd
      Ikävä
      146
      1997
    7. Nyt meni lopulliset lämmöt.

      Alan käyttäytymään yhtä kylmästi miehiä kohtaan kuin mua kohtaan on käyttäydytty ja vain käytetty viimeiset pari vuotta
      Sinkut
      44
      1757
    8. Hienoa! Eduskunta luopui käteisen käytöstä

      Nyt tuo sama muutos pitää saada myös muuhun yhteiskuntaan. Käteistähän ei tarvitse tänä päivänä enää kuin rikolliset.
      Maailman menoa
      39
      1515
    9. Onko erityinen paikka jossa haluaisit nyt olla

      Onko joku spesiaali lempipaikka missä mieluiten olisit?
      Ikävä
      63
      1444
    10. Orpo loukkaantui fasismiin viittaavasta sanavalinnasta

      Mutta miksi loukkaantui? Orpohan on tehnyt yhteistyötä fasistien kanssa jo vuonna 2019, siis jo neljä vuotta ennen loukk
      Maailman menoa
      26
      1319
    Aihe