HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Fájltartalmat cserélő komponens készítése


Példaprogram letöltése

5188 bájt

Előfordulhat, hogy olyan megoldásra van szükségünk, melynek segítségével képesek vagyunk egy szöveges állomány tetszőleges szövegrészletét kicserélni egy másik részletre. Cikkünkben elkésztünk egy komponenst, mellyel ezt megoldhatjuk. Elegendő megadnunk az állomány elérési útvonalát, a kicserélendő és az új szövegrészlet karakterláncait, és meghívni a komponens megfelelő metódusát.

A mellékelt példaprogram megnyitása előtt a Replacer.pas-ban lévő komponenst telepítenie kell a Delphi alá. Ehhez válassza a Component – Install Component menüpontot.
A komponens három property-jében tudjuk megadni a bevezetőben említett adatokat, ezek neve a következő:
  • FilePath: az állomány elérési útjának tárolására
  • OldString: a kicserélendő karakterlánc számára
  • NewString: a behelyezendő karakterlánc tárolására
A komponens Execute metódusába ágyaztuk a csere elvégzésének műveletét. A property-k megadása után egyszerűen meg kell hívnunk ezt a paraméter nélküli eljárást.
Az Execute metódusban először megvizsgáljuk, hogy a property-k tartalmaznak-e használható értékeket.
function TReplacer.Execute:boolean;
var f: file;
    l: Longint;
    s : string;
    res : boolean;
begin
  res := true;
  if (FFilePath <> '') and (FOldString <> '') and (FNewString <> '') then begin
Ezt követően egy változóban tároljuk el a megadott, cserélendő karakterláncot, és inicializáljuk a FILE objektumunkat a megadott elérési útvonalon található állománnyal.
try
  s := FOldString;
  AssignFile(f, FFilePath);
  Reset(f, 1);
A következő lépés, hogy elindítunk egy ciklust, melyben vizsgáljuk a fájl tartalmának a megadott karakterlánccal azonos hosszúságú részláncát, az egyezőséget keresve.
  for l := 0 to FileSize(f) - Length(FOldString) - 1 do
  begin
    Application.ProcessMessages;
    Seek(f, l);
    BlockRead(f, FOldString[1], Length(FOldString));
Amennyiben a BlockRead metódussal beolvasott részlánc megegyezik a megadott karakterlánccal, akkor a BlockWrite eljárással beírjuk az állomány most megkapott pozíciójába az új karakterláncot.
    if FOldString = s then
    begin
      Seek(f, l);
      BlockWrite(f, FNewString[1], Length(FNewString));
    end;
    Application.ProcessMessages;
  end;
  CloseFile(f);
Miután az alkalmazásban a Form-ra helyeztük a komponenst, meghívhatjuk az Execute metódust a Csere nyomógomb megnyomásával. A példához mellékeltünk egy szöveges állományt (Sample.txt), melynek tartalmát a Form TMemo komponensében megjelenítjük. A csere végrehajtása után újraolvassuk az állományt, így a művelet eredménye rögtön látható.
Replacer1.FilePath := edit1.Text;
Replacer1.OldString := edit2.Text;
Replacer1.NewString := edit3.Text;
Replacer1.Execute;
Memo1.Text := '';
Memo1.Lines.LoadFromFile(edit1.Text);

Cikksorozat

#IDKategóriaCikk címeSorozat
4397Windows.NET Framework konfigurálása az operációs rendszerben1. rész
4446Windows.NET Framework konfigurációs snap-in2. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2003 évkönyv 680. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |