Arsip: Regex string dari file di Delphi sukses, tapi berat?

 
user image
more 15 years ago

dels

kk terhormat, salam kenal dari anak baru, saya adalah programmer setia Delphi (sebelumnya Pascal) dari tahun 2004, biasanya sih saya nangkring di newsserver-nya borland untuk diskusi masalah2 programming di Delphi. kebetulan saya ada sedikit masalah mengenai Regular Expression (Regex) di Delphi (dan di newsserver borland belum ada tanggapan). saya membuat sebuah kode program yang diharapkan mampu mengambil string (ekstraksi data) dari file raw. kode yang sekarang ada sudah mampu melakukan ekstraksi dengan sempurna, hanya saja ada 1 masalah yaitu penggunaan memory yang cukup besar ketika membuka file di atas 100 MB (karena file-nya dan stringlistnya diload ke memory). yang diharapkan sih penggunaan memori-nya bisa lebih ringan tapi tidak mengorbankan kecepatan aplikasi. ya kalo bisa sih operasinya di bawah 1 menit kaya klo ngeregex pake RegexBuddy (http://www.regexbuddy.com/, kebetulan yg bikin aplikasi sama dgn yg buat komponen) saya menggunakan komponen TPerlRegExp : http://www.regular-expressions.info/delphi.html terima kasih, Dels kode programnya sederhana, mohon jgn ketawa :D soalnya saya masih baru dalam urusan Regex :
var
  FS : TFileStream;
  BUFF : string;
  Size : integer;
  MatchStr : TStringList;
begin
  //anggap pattern sudah ditentukan sebelumnya
  if OpenDialog1.Execute then
    begin
      FS := TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
      MatchStr := TStringList.Create;
      Size := FS.Size;
      SetLength(BUFF, Size);
      FS.Read(BUFF[1], Size);
      PRE.Subject := BUFF; //TPerlRegExp, http://www.regular-expressions.info/delphi.html
      try
        if PRE.Match then
          begin
            MatchStr.Add(PRE.MatchedExpression);
            repeat
              MatchStr.Add(PRE.MatchedExpression);
            until not PRE.MatchAgain;
          end;
      finally
        MatchStr.Free;
        FS.Free;
      end;
      ShowMessage('Done'); // kasih tau klo udah beres
    end;
end;
user image
more 15 years ago

DelphiExpert

anda harus ganti library, cari yg support direct-process dari stream...
user image
more 15 years ago

_aa_

coba library alternatif http://regexpstudio.com/TRegExpr/TRegExpr.html
user image
more 15 years ago

dels

mas _aa_, ada kode contoh supaya bisa baca dari stream ga?
user image
more 15 years ago

DelphiExpert

TRegExpr juga tidak support direct process from stream, see: then input string type was RegExprString = AnsiString;
user image
more 15 years ago

_aa_

iya sori, saya gak bilang dari stream koq. itu cuma alternatif. yang saya tangkep librarinya bung @dels kan pake tstrings, kalo tregexp pake string biasa, bisa dibuffer sama tstringstream. (tapi saya sendiri gak pernah coba pake intermediary seperti itu sih)
user image
more 15 years ago

dels

saya dgr sih ada komponen yg bisa baca dari stream langsung yaitu DIRegEx, sayangnya ga gratis : http://www.yunqa.de/delphi/doku.php/products/regex/index
user image
more 15 years ago

DelphiExpert

yup... benar sekali... yah... ngga' apa2 bayar utk jerih payah orang lain, kecuali anda bikin sendiri ngga' perlu bayar :lol:
more ...
  • Pages:
  • 1
Share to

Random Topic

Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com