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

82

    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. Oho! Sofia Belorf ja "rillimiljönääri-rakas" sai somen liekkeihin: "Optikko vai grillikioskin...?"

      "Rillimiljönääri-rakas" on kyllä hyvä titteli!!! Tsemppiä Sofialle rakkauteen ja terkkuja Nikolle ja Stefanille! Lue l
      Kotimaiset julkkisjuorut
      25
      2028
    2. Jos voisit kääntää kelloa taaksepäin

      Mihin hetkeen palaisit?
      Ikävä
      120
      1200
    3. Pitäisikö valtion lopettaa Terveysjättien tukeminen

      Nyt annetaan puoli miljardia veroparatiiseihin ja kavereille, eikö olisi järkevää että valtio tukee vain Julkista puolta
      Maailman menoa
      134
      1178
    4. Mitä luulet kaivattusi ajattelevan sinusta?

      Oletko ollut hänen mielestään reilu, rehellinen ja ymmärtäväinen? Vai oletko hänen mielestään se, joka ei ollut reilu ei
      Ikävä
      9
      1036
    5. Sofia ei taida tajuta, että kaikki nauravat hänelle

      Sofia feikkaa luksuslokkeilua muttei tajua, että se aiheuttaa lähinnä myötähäpeää ja kaikki nauravat hänelle.
      Kotimaiset julkkisjuorut
      145
      962
    6. Yllätyskäänne: Kivitipun huutokauppa rauksesi, myynnissä uudelleen.

      Kivitipusta käydään edelleen kauppaa, vaikka alkuperäinen huutokauppamyynti raukesikin. https://ilkkapohjalainen.fi/ta
      Lappajärvi
      36
      863
    7. Mikä oli se suurin syy, ettet kertonut tunteistasi?

      Olisitko voinut tai halunnut?
      Ikävä
      62
      767
    8. Mukava nainen on

      Hyvännäköinen ja jollain tavalla räväkkä. Katsoin häntä, mutta mietin sinua kuitenkin. Ihan vaikka koko pitäjän kauneimm
      Ikävä
      54
      760
    9. Lauantai aaumua

      Silmät aukesivat todellisuuteen. Hyvää huomenta. ☕🍁😊❤️
      Ikävä
      142
      746
    10. Pertikki out

      Lopeta nyt Pertikki tuo poliitiikan jauhaminen täällä. Mene jonnekin poliitiikan erikoissivuille ja jankkaa tuota muuall
      70 plus
      183
      726
    Aihe