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

209

    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. Vesikin maksaa, miksei hengitysilma?

      Jatkuvasti itketään ettei ole rahaa mihinkään, mutta tilastojen mukaan rahaa on enemmän kuin koskaan, joten miksei asial
      Maailman menoa
      20
      1761
    2. Satuolennoista tarinointi ei kuulu peruskoulun tehtäviin

      Opetustunteja on muutenkin käytössä vain rajallinen määrä. Eli nämä satuhommat koulun ulkopuolelle vapaaehtoisiin harras
      Maailman menoa
      144
      1738
    3. Suomalainen perheenisä vaatii Suvivirren esittämisestä hyvityksiä

      Itse lapsena uskonnonopetuksesta vissiin traumoja saanut ihka suomalainen (!) perheenisä vaatii Espoon kaupungilta korva
      Maailman menoa
      318
      1413
    4. Lahkokasteen ja kristillisen kasteen erot

      Raamatun mukaan Kristillisessä yhdessä kasteessa Jumala pesee ja puhdistaa ihmisen sydämen ja poistaa perisynnin kirouks
      Kaste
      422
      1108
    5. Mies profiloin sinut

      Etsit täysin hallittavaa mutta samalla poikkeuksellista ihmistä. Etsit jotain mitä et koskaan tule saamaan.
      Ikävä
      209
      1102
    6. Mitä haluaisit

      Tehdä kaivattusi kanssa?
      Ikävä
      139
      1048
    7. Salainen kastekoulutus

      Millainen on helluntailainen kastekoulutus ja kauanko se kestää ?
      Kaste
      285
      975
    8. Heikki Paasosen Marita-vaimo jätti tunteikkaat jäähyväiset: "Tällä kertaa me..."

      Heikki Paasonen on naimisissa Marita Paasosen (os. Alatalo) kanssa ja heillä on kaksi pientä lasta. Nyt koitti aika jätt
      Suomalaiset julkkikset
      3
      945
    9. Känsäkoura ja hotelli

      Tietoa kuka ostanut?
      Kuhmo
      11
      945
    10. Pirkanlinna yleisötapahtuma

      Oli todella hyvä tilaisuus. Ja EERO. L. Aivan mahtava tyyppi. Veti rennosti ja asiallisesti. Ja yleisöltä hyviä kysymyks
      Ähtäri
      49
      898
    Aihe