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

89

    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. Vakava rikosepäily Seinäjoella

      Ilkka ei taaskaan tiedä mitään mutta hesalaiset kertoo: https://www.is.fi/kotimaa/art-2000010959325.html
      Seinäjoki
      41
      2591
    2. Mitä on woketus?

      Täälläkin hoetaan usein sanaa "woketus". Mitä se tarkalleen ottaen tarkoittaa? Ilmeisesti sen käyttäjät ymmärtävät sen k
      Maailman menoa
      395
      2090
    3. Olet saanut kyllä tunnisteita

      Itsestäsi ja meistä. Mutta mikä siinä on, ettet kirjoita etkä anna itsestäsi merkkejä. Ellei ole kysymys siitä, mikä ens
      Ikävä
      20
      1832
    4. Oletko jo luovuttanut?

      Joko olet luovuttanut kaivatun suhteen ja hyväksynyt, että mitään ei tule?
      Ikävä
      138
      1714
    5. Ikääntyvien tilanne Suomessa on järkyttävä - Hoivakotiin ei pääse, vaan joutuu selviytymään yksin

      Ikääntyvien tilanne Suomessa on järkyttävä… Hoivakoteihin sijoittamista vältellään, koska hoito on kallista ja hyvinvoin
      Maailman menoa
      119
      1583
    6. Mies pakko olla rehellinen

      Kiinnostuin koska olet tosi komea ja sulla on ihana puheääni. Olen aika pinnallinen sitten kai... 😓 kyllä olet tosi rau
      Ikävä
      15
      1511
    7. Hirvenmaitojuusto

      Olin Prisman juustohyllyllä kun vierestä alkoi kuulua kamala paapatus. Siinä oli vanha muori, joka räyhäsi raivokkaasti,
      Ruoka ja juoma
      0
      1112
    8. Kristo Salminen, 52, riisuutui - Paljasti Iso-Börjen tatuoinnit - Somekansan tuomio yksimielinen

      Iso-Börje, tuo iso, tatuoitu, yltiöromanttinen ja aika kuuma rikollispomo - vai mitä mieltä sinä olet? Lue lisää ja kat
      Tv-sarjat
      21
      1093
    9. Vanhentunut runsaasti.

      Ei hyvä juttu. Mieheltä pötkylänaiselle.
      Ikävä
      73
      1005
    10. Kerro mulle miksi juuri me

      Kohdattiin? Tässä elämässä. Vaikka ollaan edelleen tutut tuntemattomat. Se on omituinen tunne.
      Ikävä
      63
      915
    Aihe