Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
파일에서 토큰을 이용해서 단어를 가져오는 함수나 프로시져가 없습니까
c나 java같은 언어는 토큰을 이용해서 파일에서
단어들을 가져올 수 있는 함수가 있는 것으로 알고 있습니다.
델파이는 없는지요
찾지를 못하겠군요
감사합니다.
1
COMMENTS
김영대
•
1999.10.08 19:33
서영재 wrote:
> c나 java같은 언어는 토큰을 이용해서 파일에서
> 단어들을 가져올 수 있는 함수가 있는 것으로 알고 있습니다.
> 델파이는 없는지요
> 찾지를 못하겠군요
> 감사합니다.
"token을 이용해서 단어를 가져온다"의 동작이 단어 찾기를 의미하나요?
텍스트 파일에서 특정 문자열이 있는지 검사하는 루틴이라면 아래를 참고하세요
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
OpenDialog1: TOpenDialog;
ProgressBar1: TProgressBar;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
// PosInFile()는 해당 파일에서 문자열을 찾으면 그 바이트 위치를 리턴하며
// 파일에 문자열이 없으면 -1을 리턴합니다
function PosInFile(Str, FileName: String; PBar: TProgressBar): Integer;
var
Buffer: array[0..1023]of char;
BufPtr,BufEnd: integer;
F: File;
Index: integer;
Increment: integer;
c:char;
function NextChar:char;
begin
if BufPtr >= BufEnd then
begin
BlockRead(F, Buffer, 1024, BufEnd);
BufPtr := 0;
PBar.Position := FilePos(F);
Application.ProcessMessages;
end;
Result := Buffer[BufPtr];
Inc(BufPtr);
end;
begin
Result := -1;
AssignFile(F, FileName);
Reset(F,1);
PBar.Max := FileSize(F);
BufPtr := 0;
BufEnd := 0;
Index := 0;
Increment := 1;
repeat
c := NextChar;
if c = Str[Increment] then
Inc(Increment)
else
begin
Inc(Index, Increment);
Increment := 1;
end;
if Increment = (Length(Str)+1) then
begin
Result := Index;
Break;
end;
until BufEnd = 0;
CloseFile(F);
PBar.Position := 0;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
ret: integer;
begin
if OpenDialog1.Execute then
begin
ret := PosInFile(Edit1.Text, OpenDialog1.FileName, ProgressBar1);
if ret = -1 then
ShowMessage('찾는 문자열이 파일에 없습니다')
else
ShowMessage(IntToStr(ret)+' 번째 위치에 문자열이 있습니다');
end;
end;
end.
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
김순호
•
1999.10.08 21:24
1
COMMENTS
/
0
LIKES
web 프로그램의 시발점은???
최선미
•
1999.10.11 18:34
김순호 wrote: > > web프로그래밍 시작과 완성이란 책을 보세요. 괜찮던데요.. > -------------------...
김순호
•
1999.10.08 21:22
1
COMMENTS
/
0
LIKES
web 서버구축에 관하여...
NiceJJ
•
1999.10.09 00:07
안녕하세요... Delphi 3.0으로도 개발할수 있지만, 제가 해 보니깐.. Delphi 4.0이나 5.0을 사용하시는...
atom
1999.10.08 20:29
0
COMMENTS
/
0
LIKES
AccessDB에서 Create View문제....
이양규
•
1999.10.08 20:16
2
COMMENTS
/
0
LIKES
Query로 삽입시 북마크이용..
이재식
•
1999.10.08 22:00
이양규 wrote: > TQuery컴포넌트 하나로 db에 자료를 삽입한 후에 > 다시 select 하였을 때 방금전에 삽...
김영대
•
1999.10.08 20:55
이양규 wrote: > TQuery컴포넌트 하나로 db에 자료를 삽입한 후에 > 다시 select 하였을 때 방금전에 삽...
고한석
1999.10.08 20:14
0
COMMENTS
/
0
LIKES
김영대님 이것 좀....
이규학
•
1999.10.08 20:06
3
COMMENTS
/
0
LIKES
파일 압출/풀기
이정욱
•
1999.10.09 19:55
한델 (http://www.delphi.co.kr) 자료실에 올라갔습니다. DelZip 입니다. 이규학 wrote: > 파일을 zip...
안치봉
•
1999.10.08 21:23
쩝.. 올리려고 했는데.. 저한테 없네요.. 델파이 수퍼페이지에 가셔서 찾아보시면 있습니다... 저희 지금...
안치봉
•
1999.10.08 21:20
공개컴포넌트도 있고(DelZip) 상용컴포넌트도 있습니다.(Abbrevia 기타등등) 물론 상용에는 기능이 더 많...
남윤혁
•
1999.10.08 18:13
1
COMMENTS
/
0
LIKES
TQuery와 TUpdateSQL을 이용하여 두 테이블 제어?
오승섭
•
1999.10.08 19:19
안녕하십니까? 오승섭입니다. 제가 알고 있기로는 사용자께서 어떤 DB를 사용하는지 모르겠지만 TQuery...
강경중
1999.10.08 15:31
0
COMMENTS
/
0
LIKES
도와 주세요....
허지웅
•
1999.10.08 15:15
1
COMMENTS
/
0
LIKES
웹 상의 ActiveForm에서 다른 페이지 호출은 어떻게?
구창민
•
1999.10.08 18:38
허지웅 wrote: > 자바 애플릿에는 showDocument(URL)이 있습니다. 이를 이용하여 showDocument(new URL(ht...
성희
1999.10.08 11:20
0
COMMENTS
/
0
LIKES
소프트웨어 공학에 관한 문제들
강경범
•
1999.10.08 09:06
3
COMMENTS
/
0
LIKES
쿼리된 필드의 내용을 편집할 순 없을까요?
고규인
•
1999.10.09 06:07
강경범 wrote: > 한 필드(pro_time)에 대해서 정렬하고, pro_time값을 누적해서 다른 필드(com)에 넣고싶...
이주흥
•
1999.10.08 19:38
강경범 wrote: > 한 필드(pro_time)에 대해서 정렬하고, pro_time값을 누적해서 다른 필드(com)에 넣고싶...
박윤종
•
1999.10.08 19:09
강경범 wrote: > 한 필드(pro_time)에 대해서 정렬하고, pro_time값을 누적해서 다른 필드(com)에 넣고싶...
memogi
•
1999.10.08 08:33
1
COMMENTS
/
0
LIKES
파라독스DB질문입니다..꼭 봐주세요??
이재식
•
1999.10.08 19:37
memogi wrote: > 안녕하세요... > 또..질문이 생겼거든요.. > 그전부터 궁금했었던건데요... > 만약에 ...
장대광
•
1999.10.08 06:58
1
COMMENTS
/
0
LIKES
런처바(도구모음툴바) 만드는 방법
김영대
•
1999.10.08 19:25
장대광 wrote: > 안녕하세요.. > > 런처바(도구모음툴바)를 만들려고 하는데 도무지 감을 잡을수가 없...
강민주
•
1999.10.08 06:51
1
COMMENTS
/
0
LIKES
TList에서 Sort()함수 사용법?
구창민
•
1999.10.08 19:09
강민주 wrote: > 안녕하세요. ^^; > > mdir같은 파일관리 프로그램을 만들려고 > TList로 파일리스트...
서영재
•
1999.10.08 05:02
1
COMMENTS
/
0
LIKES
파일에서 토큰을 이용해서 단어를 가져오는 함수나 프로시져가 없습니까
c나 java같은 언어는 토큰을 이용해서 파일에서 단어들을 가져올 수 있는 함수가 있는 것으로 알고 있습니다. 델파이는 없는지요 찾지를 못하겠군요 감사합니다.
김영대
•
1999.10.08 19:33
서영재 wrote: > c나 java같은 언어는 토큰을 이용해서 파일에서 > 단어들을 가져올 수 있는 함수가 있는...
정은경
1999.10.08 04:36
0
COMMENTS
/
0
LIKES
copy error
DIP
1999.10.08 04:30
0
COMMENTS
/
0
LIKES
TFTP 사용 후, 종료 시 프로그램 Down ...
최영란
•
1999.10.08 03:21
1
COMMENTS
/
0
LIKES
다시한번 올립니다..동적 생성시킨 paintbox에서..
김영대
•
1999.10.08 20:12
최영란 wrote: > 제목 그대로입니다. > > paintbox를 동적생성시킨 후 > onpaint 이벤트를 호출한후 ...
junyes
•
1999.10.08 03:03
1
COMMENTS
/
0
LIKES
stringGrind에 출력되는 데이타만큼 그리드를 자동으로 이동되게
김영대
•
1999.10.08 19:29
junyes wrote: > 조회 화면에서 조회 키를 누르게 되면 죄회된 데이터 만큼 자동으로 스크롤바 > 가 아래...
DogSeller
1999.10.08 02:17
0
COMMENTS
/
0
LIKES
internet프로그램에서 문제점이 생김
서영재
1999/10/08 05:02
Views
365
Likes
0
Comments
1
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
> c나 java같은 언어는 토큰을 이용해서 파일에서
> 단어들을 가져올 수 있는 함수가 있는 것으로 알고 있습니다.
> 델파이는 없는지요
> 찾지를 못하겠군요
> 감사합니다.
"token을 이용해서 단어를 가져온다"의 동작이 단어 찾기를 의미하나요?
텍스트 파일에서 특정 문자열이 있는지 검사하는 루틴이라면 아래를 참고하세요
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
OpenDialog1: TOpenDialog;
ProgressBar1: TProgressBar;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
// PosInFile()는 해당 파일에서 문자열을 찾으면 그 바이트 위치를 리턴하며
// 파일에 문자열이 없으면 -1을 리턴합니다
function PosInFile(Str, FileName: String; PBar: TProgressBar): Integer;
var
Buffer: array[0..1023]of char;
BufPtr,BufEnd: integer;
F: File;
Index: integer;
Increment: integer;
c:char;
function NextChar:char;
begin
if BufPtr >= BufEnd then
begin
BlockRead(F, Buffer, 1024, BufEnd);
BufPtr := 0;
PBar.Position := FilePos(F);
Application.ProcessMessages;
end;
Result := Buffer[BufPtr];
Inc(BufPtr);
end;
begin
Result := -1;
AssignFile(F, FileName);
Reset(F,1);
PBar.Max := FileSize(F);
BufPtr := 0;
BufEnd := 0;
Index := 0;
Increment := 1;
repeat
c := NextChar;
if c = Str[Increment] then
Inc(Increment)
else
begin
Inc(Index, Increment);
Increment := 1;
end;
if Increment = (Length(Str)+1) then
begin
Result := Index;
Break;
end;
until BufEnd = 0;
CloseFile(F);
PBar.Position := 0;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
ret: integer;
begin
if OpenDialog1.Execute then
begin
ret := PosInFile(Edit1.Text, OpenDialog1.FileName, ProgressBar1);
if ret = -1 then
ShowMessage('찾는 문자열이 파일에 없습니다')
else
ShowMessage(IntToStr(ret)+' 번째 위치에 문자열이 있습니다');
end;
end;
end.