그냥..구분자를두고 텍스트 파일로 저장하고 다시 짤라서 쓰는게 좋은가요??
아니면 블럭라이트로 하니씩 계속쓰는게 좋을까요??
스트링도 있고 인테저도 있고..뒤죽박쭉 클래스가 하나있는데..이걸 모조리 저장할려구합니다.
가장 쉽고 깔끔한 방법 아시는 분 알려주세요~~~
아래는....그...뒤쭉박쭉 클래스입니다..변수는 거의 다 저장해야 합니다..
type
TLogProcess = class (TObject)
public
Mail_E_N, Mail_ES_N, Mail_ER_N : Integer;
Mail_EA_N, Mail_RA_N, Mail_SA_N : Real;
Result_S_N, Result_F_N, Result_D_N : Integer;
Add_RA_N, Add_SA_N: Real;
Host_RA_N, Host_SA_N: Real;
Host_U_N, Add_U_N : Integer;
Mail_E_B , Mail_ES_B, Mail_ER_B : Int64;
Mail_EA_B, Mail_RA_B, Mail_SA_B : Real;
Result_D_B, Result_F_B, Result_S_B : Int64;
Add_SA_B, Add_RA_B : Real;
Host_U_B, Add_U_B : Int64;
Host_RA_B, Host_SA_B : Real;
Delay_E, Delay_A, Delay_BPS : Real;
Start_DT : TDateTime;
EMail_String, Host_String : String;
Email_ID, Host : String;
Sendnum21 : Array[0..23] of Integer;
Recnum21 : Array[0..23] of Integer;
TotalRec21 : Integer;
TotalSnd21 : Integer;
Sendnum22 : Array[0..23] of Integer;
Recnum22 : Array[0..23] of Integer;
TotalRec22 : Integer;
TotalSnd22 : Integer;
Sendnum23 : Array[0..6] of Integer;
Recnum23 : Array[0..6] of Integer;
TotalRec23 : Integer;
TotalSnd23 : Integer;
Sendnum24 : Array[0..6] of Integer;
Recnum24 : Array[0..6] of Integer;
TotalRec24 : Integer;
TotalSnd24 : Integer;
AnalRecord25 : Array of TAnalRecord;
AnalRecord26 : Array of TAnalRecord;
AnalRecord27 : Array of TAnalRecord;
AnalRecord28 : Array of TAnalRecord;
AnalRecord29 : Array of TAnalRecord;
ErrorMaxNum : Integer;
Header : String;
CurrentLog : String;
pCurrentLog : pChar;
StartLine : PChar;
LogLine : Array[0..10] of String;
SizeofFile,SpPos : Integer;
HostMaxNum : Integer; // host의 총갯수
MailMaxNum : Integer; // e-mail의 총갯수
LogArray : Array of LongInt; // 인덱싱 데이타 저장
FH : File of Char; // 파일 핸들
TotalLog : Integer; // 전체 라인수(인덱싱된 로그라인)
LogRecord : TLogRecord; // 분석된 로그라인을 저장할 공간
FileName: TFileName; // 큐멜로그 파일이름
BlockBegin : Integer; //블럭시작의 파일포인터
BlockEnd : Integer; // 블럭끝의 파일포인터
MaxLine : Integer; // 한번에 로딩 할 최대 라인
LogString : pChar; // 로딩된 블럭 데이타
LogSize : Integer; // 로그 한 줄의 최대 크기
Buffer : PChar; // 인덱싱을위한 버터..
Function HighHost(StartNum: Integer ; Kind : Integer; AnalRecord: Array of TAnalRecord): Integer; // 가장큰 TanalRecord를 구함
Procedure SortHost(Kind : Integer; var AnalRecord: Array of TAnalRecord);
//TanalRecord를 소팅함 Kind - 1:Send Host, 2:Receive Host, 3:Send Mail, 4:Receive Mail
Procedure MakeAnalData; // 로그분석 엔진!!!!! Core!!!
Procedure OpenLogFile; // 파일열고 인덱싱
procedure GetLogRecord(RequestLine: Integer); // 요청라인의 로그를 분석 해서 LogRecord에 저장
Function UnixtimetoDateTime(Unixtime: Integer): TDatetime; //n64 UnixTimeStamp to TDatetime
Function GoThere(Here : Double): Integer; // 특정시간의 로그라인으로 잽싸게 이동
// procedure AnalDataSave; // 로그분석 데아타 저장
// procedure AnalDataLoad; // 로그분석 데아타 로딩
{ Public declarations }
end;
변수들을 record에 카피하구.. record 단위로 쓰는게 편합니다..
클래스는 저장이 안됩니다..
사실 저장이 되긴 하는데, 직관적이구 쉬운 방법이 아닙니다..ㅠㅠ
아마, 모든 클래스가 기본적으로 TObject 를 상속받아서 그런거 같습니다..
즐푸하세여..
타락천사.......
김경태 wrote:
> 그냥..구분자를두고 텍스트 파일로 저장하고 다시 짤라서 쓰는게 좋은가요??
> 아니면 블럭라이트로 하니씩 계속쓰는게 좋을까요??
> 스트링도 있고 인테저도 있고..뒤죽박쭉 클래스가 하나있는데..이걸 모조리 저장할려구합니다.
> 가장 쉽고 깔끔한 방법 아시는 분 알려주세요~~~
> 아래는....그...뒤쭉박쭉 클래스입니다..변수는 거의 다 저장해야 합니다..
>
> type
> TLogProcess = class (TObject)
> public
> Mail_E_N, Mail_ES_N, Mail_ER_N : Integer;
> Mail_EA_N, Mail_RA_N, Mail_SA_N : Real;
> Result_S_N, Result_F_N, Result_D_N : Integer;
> Add_RA_N, Add_SA_N: Real;
> Host_RA_N, Host_SA_N: Real;
> Host_U_N, Add_U_N : Integer;
> Mail_E_B , Mail_ES_B, Mail_ER_B : Int64;
> Mail_EA_B, Mail_RA_B, Mail_SA_B : Real;
> Result_D_B, Result_F_B, Result_S_B : Int64;
> Add_SA_B, Add_RA_B : Real;
> Host_U_B, Add_U_B : Int64;
> Host_RA_B, Host_SA_B : Real;
> Delay_E, Delay_A, Delay_BPS : Real;
> Start_DT : TDateTime;
> EMail_String, Host_String : String;
> Email_ID, Host : String;
>
> Sendnum21 : Array[0..23] of Integer;
> Recnum21 : Array[0..23] of Integer;
> TotalRec21 : Integer;
> TotalSnd21 : Integer;
>
> Sendnum22 : Array[0..23] of Integer;
> Recnum22 : Array[0..23] of Integer;
> TotalRec22 : Integer;
> TotalSnd22 : Integer;
>
> Sendnum23 : Array[0..6] of Integer;
> Recnum23 : Array[0..6] of Integer;
> TotalRec23 : Integer;
> TotalSnd23 : Integer;
>
> Sendnum24 : Array[0..6] of Integer;
> Recnum24 : Array[0..6] of Integer;
> TotalRec24 : Integer;
> TotalSnd24 : Integer;
>
> AnalRecord25 : Array of TAnalRecord;
> AnalRecord26 : Array of TAnalRecord;
> AnalRecord27 : Array of TAnalRecord;
> AnalRecord28 : Array of TAnalRecord;
> AnalRecord29 : Array of TAnalRecord;
> ErrorMaxNum : Integer;
>
> Header : String;
> CurrentLog : String;
> pCurrentLog : pChar;
> StartLine : PChar;
> LogLine : Array[0..10] of String;
> SizeofFile,SpPos : Integer;
> HostMaxNum : Integer; // host의 총갯수
> MailMaxNum : Integer; // e-mail의 총갯수
> LogArray : Array of LongInt; // 인덱싱 데이타 저장
> FH : File of Char; // 파일 핸들
> TotalLog : Integer; // 전체 라인수(인덱싱된 로그라인)
> LogRecord : TLogRecord; // 분석된 로그라인을 저장할 공간
> FileName: TFileName; // 큐멜로그 파일이름
> BlockBegin : Integer; //블럭시작의 파일포인터
> BlockEnd : Integer; // 블럭끝의 파일포인터
> MaxLine : Integer; // 한번에 로딩 할 최대 라인
> LogString : pChar; // 로딩된 블럭 데이타
> LogSize : Integer; // 로그 한 줄의 최대 크기
> Buffer : PChar; // 인덱싱을위한 버터..
> Function HighHost(StartNum: Integer ; Kind : Integer; AnalRecord: Array of TAnalRecord): Integer; // 가장큰 TanalRecord를 구함
> Procedure SortHost(Kind : Integer; var AnalRecord: Array of TAnalRecord);
> //TanalRecord를 소팅함 Kind - 1:Send Host, 2:Receive Host, 3:Send Mail, 4:Receive Mail
> Procedure MakeAnalData; // 로그분석 엔진!!!!! Core!!!
> Procedure OpenLogFile; // 파일열고 인덱싱
> procedure GetLogRecord(RequestLine: Integer); // 요청라인의 로그를 분석 해서 LogRecord에 저장
> Function UnixtimetoDateTime(Unixtime: Integer): TDatetime; //n64 UnixTimeStamp to TDatetime
> Function GoThere(Here : Double): Integer; // 특정시간의 로그라인으로 잽싸게 이동
> // procedure AnalDataSave; // 로그분석 데아타 저장
> // procedure AnalDataLoad; // 로그분석 데아타 로딩
> { Public declarations }
> end;