안녕하세요...
제 나름대로 열심히 메모장 비스무리~한걸 하나 만들고 있습니다.
richedit를 썼는데...속도가 영~아니었습니다.
나름대로 이리 맞춰보고 저리 맞춰보고 해도...영~
님들이 한번 보시고 조언 좀 해주세요...
제가 하고자 하는거는...
abcd (빈칸들.........................)
agho (빈칸들.........................)
.
.
(계속~)
이런 text파일이 있을 때....이걸 abcdagho~로 바꾸고 싶습니다.
그래서 제가 선택한 방법은 라인별로 읽어서 빈칸은 빼고..4칸씩 카피해서 이어 붙이기를 했습니다.
근데 라인수가 얼마안될때는 별 상관이 없는데...2000줄 쯤씩 되니까 속도가 너무 느려졌습니다.
참고로 글은...예는 저렇게 해 놨지만...80으로 고정되어 있구여..빈칸들도 171칸으로 고정 되어 있습니다.(라인수는 유동~)
님들~이 작업을 빠르게 처리하려면 어떻게 하는게 좋을까요~?
조언 부탁드립니다.
=================================================
아래는...제가 나름대로 잔머리 굴려서 짠 소스 입니다.
=================================================
procedure TFStat.LineReject;
var
File1, Temp1, S : String;
Temp2 : TextFile;
I, npos, num : Integer;
begin
File1 := 'C:BayplanSEdit.XXX';
AssignFile(Temp2,File1);
ReWrite(Temp2); //초기화
Temp1 := '';
num := mainform.RichEdit1.Lines.Count;
Gauge1.MinValue := 0;
Gauge1.MaxValue := num;
Gauge1.Progress := 0;
for I := 1 to num do Begin
temp1 := mainform.RichEdit1.Lines[i];
nPos := Pos(temp1, mainform.richedit1.text);
Temp1 := Copy(mainform.richedit1.text, nPos, 80) ;
if I = num-1 then begin
Temp1 := TRIM(Temp1);
end;
Write(Temp2, Temp1);
Gauge1.Progress := Gauge1.Progress + 1;
end;
CloseFile(Temp2);
mainform.richedit1.clear;
if FileExists(File1)=TRUE then begin
Assignfile(Temp2,File1);
Reset(Temp2);
while not Eof(Temp2) do begin
Readln(Temp2, S);
MainForm.RichEdit1.lines.add(S);
end;
closefile(Temp2);
end;
Gauge1.Progress := 0;
close;
end;