Delphi Tip243 String 을 PAnsiChar 변환 String 을 PAnsiChar 변환 function StringToPAnsiChar(stringVar : string) : PAnsiChar; Var AnsString : AnsiString; InternalError : Boolean; begin InternalError := false; Result := ''; try if stringVar '' Then begin AnsString := AnsiString(StringVar); Result := PAnsiChar(PAnsiString(AnsString)); end; Except InternalError := true; end; if InternalError or (String(Result) stringVar) then begin Raise Exc.. 2021. 10. 14. 난수 문자열 만들기 난수 문자열 만들기 function RandomPassword(PLen: Integer): string; var str: string; begin Randomize; //string with all possible chars str := 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; Result := ''; repeat Result := Result + str[Random(Length(str)) + 1]; until (Length(Result) = PLen) end; procedure TForm1.Button1Click(Sender: TObject); begin //generate a password with 10 chars label1.Caption.. 2021. 10. 13. 문자 사이에서 숫자 추출하기 문자 사이에서 숫자 추출하기 [문자사이에서 숫자 추출하기] function ExtractInt(Astring:String):String; var i : integer; TempString:String; begin TempString := ''; Astring := Trim(Astring); if Astring '' then for i := 1 to Length(Astring) do if (Astring[I] in ['0'..'9']) then TempString := TempString+AStrig[I]; Result := Trim(TempString); end; {숫자 사이에서 문자 추출하기} function ExtractString(Astring:String):String; var i : intege.. 2021. 10. 12. 문자열에서 특정 단어가 몇번 들어갔는지 체크하는 함수 문자열에서 특정 단어가 몇번 들어갔는지 체크하는 함수 uses strutils; function countword(const source, wordstr : string; index : integer = 1):integer; var i, lensource : integer; begin result := 0; lensource := length(source); i := index; // 일정 인덱스 이후의 문자를 검색. while i0 then inc(result) else break; inc(i); end; end; 2021. 10. 11. REST 기반 파일 업로드와 다운로드 구현하기 https://blog.hjf.pe.kr/518 [REST API] REST 기반 파일 업로드와 다운로드 구현하기 이 글에서는 REST API 기반 파일 업로드와 다운로드 구현방안을 설명합니다. REST 서버와 REST 클라이언트를 이용해 기능을 구현했습니다. REST 기반 파일 업로드와 다운로드 구현 REST API 구현 시 파일 blog.hjf.pe.kr 2021. 10. 9. 델파이 DLL 사용 방법 델파이 DLL 사용 방법 1. DLL 생성 방법 File > New > Other > Delphi Projects > DLL Wizard 선택하면 기본 DLL 프로젝트가 생성됨. 2.DLL 호출 방법 => 동적사용 procedure TForm1.Button1Click(Sender: TObject); type TFunc = function(s:string) : string; //dll 함수 설정 var Handle : THandle; MyFunc : TFunc; begin Handle := LoadLibrary('파일명.dll'); if Handle 0 then begin @MyFunc := GetProcAddress(Handle, 'dll함수명'); if @MyFunc nil then begin //DL.. 2021. 10. 8. 파일 경로/이름/확장자 등 알아내기 파일 경로,이름,확장자 등 알아내기 Example code : Extract all of the parts of a full file name 코드 var fullFileName : string; begin // Set up a full file name with drive and path fullFileName := `C:\Program Files\Borland\Delphi7\Projects\Unit1.dcu`; // Show the component parts of this full name ShowMessage(`Drive = `+ExtractFileDrive (fullFileName)); ShowMessage(`Dir = `+ExtractFileDir (fullFileName)); ShowMess.. 2021. 10. 7. Unix파일 (.sam) 델파이에서 읽기 방법 Unix파일 (.sam) 델파이에서 읽기 방법 procedure ReadUnixLn(var fd: TextFile; var s: string); var i,a: integer; c: char; begin i := 0; a := 0; while ( not Eof(fd) ) do begin Read(fd,c); if ( c=Chr(10) ) then exit; SetLength(s,i+1); s[i] := c; Inc(i); inc(a); end; end; procedure TfrmSisdMain.Button2Click(Sender: TObject); var fd: TextFile; s: string; begin try AssignFile(fd,'C:\Root\post_real\IN\20140219.IAQ0.. 2021. 10. 6. 텍스트 파일읽기 비교 텍스트 파일읽기 비교 목적 : 파일을 읽어들여 라인별로 StringList 에 저장하는 것 1. FileStream : 빠르다. 라인수도 줄일 수 있다. (사실 Readln 빼고는 거의 동일한 수준) procedure Test_FileStream; var FileStream: TFileStream; sList: TStringList; begin sList:=TStringList.Create; FileStream:=TFileStream.Create(FILE_NAME, fmShareDenyNone); try sList.LoadFromStream(FileStream); finally FreeAndNil(FileStream); FreeAndNil(sList); end; end; 2. Readln : 두배 이상 .. 2021. 10. 5. 델파이 파일복사 방법 델파이 파일복사 방법 unit Unit1; interface uses Windows, Messages, SysUti= False; end; end; // 파일의 존재여부 검사 function CheckSrcF(st: string): boolean; begin Resr(tgtfname); inf.fFlags := 0 or FOF_MULTIDESTFILES; if SHFileOperation(inf) = 0 tte(srcfname, fmOpenRead); try t := TFileStream.Create(tgtfname,fmOpenWrite or fmCreate ); try t.CopyFrom(s, s.Size); finally t.Free; end; finally s.Free; end; end; // Bl.. 2021. 10. 1. 파일크기 구하기 파일크기 구하기 // 파일크기 반환. 파일이 없으면 -1 function GetFileSize(FilePath: String): Int64; var SR: TSearchRec; begin if FindFirst(FilePath, faAnyFile, SR)=0 then Result:=Int64(SR.FindData.nFileSizeHigh) shl Int64(32)+Int64(SR.FindData.nFileSizeLow) else Result:=-1; FindClose(SR); end; 2021. 9. 30. ini 파일 읽기/생성 ini 파일 읽기/생성 procedure TForm1.FormCreate(Sender: TObject); var ini: TIniFile; tmp, iniFileName: String; begin iniFileName := 'c:\test.ini'; ini := TIniFile.Create(iniFileName); if FileExists(iniFileName) then begin tmp := ini.ReadString('Section', 'value01', '0'); ShowMessage(tmp); end else begin ini.WriteString('Section', 'value01', '1'); end; ini.Free; end; 2021. 9. 29. UTF-8 인코딩 파일 읽기 UTF-8 인코딩 파일 읽기 Delphi 2009 기준. (String이 기본적으로 WideString) uses SysUtils 필요. function ReadUTF8File(Path: String): String; var fStream: TFileStream; Buffer: TBytes; begin Result:=''; if not FileExists(Path) then Exit; fStream:=TFileStream.Create(Path, fmOpenRead); try SetLength(Buffer, fStream.Size); fStream.ReadBuffer(Pointer(Buffer)^, Length(Buffer)); Result:=TEncoding.UTF8.GetString(Buffer, 0,.. 2021. 9. 28. 텍스트 파일읽기 비교 텍스트 파일읽기 비교 목적 : 파일을 읽어들여 라인별로 StringList 에 저장하는 것 1. FileStream : 빠르다. 라인수도 줄일 수 있다. (사실 Readln 빼고는 거의 동일한 수준) procedure Test_FileStream; var FileStream: TFileStream; sList: TStringList; begin sList:=TStringList.Create; FileStream:=TFileStream.Create(FILE_NAME, fmShareDenyNone); try sList.LoadFromStream(FileStream); finally FreeAndNil(FileStream); FreeAndNil(sList); end; end; 2. Readln : 두배 이상 .. 2021. 9. 27. 델파이 퀀텀 그리드 헤더 색깔 변경 델파이 퀀텀 그리드 헤더 색깔 변경 1. 설정 변경 cxGrid1.LookAndFeel.NativeStyle := False; cxGrid1.LookAndFeel.SkinName := ''; 프로퍼티 False 처리 2.코딩 procedure .CustomDrawColumnHeader( Sender: TcxGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridColumnHeaderViewInfo; var ADone: Boolean); begin ... ACanvas.FillRect(AViewInfo.Bounds, clLime); ACanvas.FrameRect(AViewInfo.Bounds, clBlack, 1, cxBordersAll); ACanvas.DrawT.. 2021. 9. 24. StringGrid 팁 StringGrid 팁 property colcount-유동셀 가로 셀의 갯수 rowcount-유동셀 세로 셀의 갯수 fixedrows-고정셀의 가로 갯수 fixedcols-고정셀의 세로 갯수 color-stringgrid의 유동셀배경색 fixedcolor-striggrid의 고정셀배경색 defaultcolwidth-셀의가로크기 defailtrowheight-셀의세로크기 gridlinewidth-grid선의 굵기 scrollbars-스크롤노출여부(ssboth:가로,세로) option-여러가지 설정을 합니다. goEdition(입력가능하게) goTabs(탭키로 셀간 이동할수있게) event DrawCell-데이터가 각 셀에 그려질때 발생하는 이벤트 selectcell-셀을 선택시 발생하는 이벤트 ex)Sh.. 2021. 9. 23. 델파이의 MD5 해싱 델파이의 MD5 해싱 델파이를 사용하여 파일 또는 문자열에 대한 MD5 체크섬 계산 MD5 Message-Digest Algorithm은 암호화 해시 기능 MD5는 일반적으로 파일의 무결성을 검사하는 데 사용되며 파일이 변경되지 않았는지 확인합니다. 한 가지 예가 프로그램을 온라인에서 다운로드 할 때입니다. 소프트웨어 배포자가 파일의 MD5 해시를 제공하면 Delphi를 사용하여 해시를 생성 한 다음 두 값을 비교하여 동일한 지 확인하십시오. 파일이 다르다면 다운로드 한 파일이 웹 사이트에서 요청한 파일이 아니므로 악성 일 수 있습니다. MD5 해시 값은 128 비트이지만 일반적으로 32 자리 16 진수 값으로 읽습니다. Delphi를 사용하여 MD5 해시 찾기 Delphi를 사용하면 주어진 파일에 대한.. 2021. 9. 17. 델파이 퀀텀그리드 출력 리스트 읽기 델파이 퀀텀그리드 출력 리스트 읽기 cxGrid1.ViewData.DataController.DisplayTexts[RowCount,컬럼번호] 2021. 9. 17. 델파이 스트링그리드(StringGrid) 셀 정렬하기 델파이 스트링그리드(StringGrid) 셀 정렬하기 스트링그리드의 셀을 원하시는 데로 정렬하실 수 있습니다. 스트링그리드의 OnDrawCell 이벤트를 원하시는 정렬방식으로 코딩해 주세요. // *********************************************************************** // 왼쪽 정렬 ************************************************************* // *********************************************************************** procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Inte.. 2021. 9. 16. 델파이 advStringGrid 가운데 정렬 델파이 advStringGrid 가운데 정렬 StringGrid1.DefaultAlignment := taCenter 2021. 9. 15. 이전 1 ··· 8 9 10 11 12 13 다음