누구든지 델파이에서 Google 프로토콜 버퍼 구현을 수행하는 프로젝트를 알고 있습니까?델파이 프로토콜 버퍼?
답변
이 프로젝트에는 Delphi 용 프로토콜 버퍼 구현이 포함되어 있습니다. 프로젝트에서 특정 프로젝트에 필요한 제한된 기능이 구현되었습니다. 그 당시에는 전체 프로젝트 코드를 전송할 생각이 없습니다. 여기 http://sourceforge.net/projects/protobuf-delphi/
보다 XML + XSD/WSDL/SOAP 프로토콜에 더 가깝습니다. 2011 년부터 다시 다루지 않았습니다. 아래를 참조하십시오. 여전히 적극적으로 유지 관리되는 것으로 보이는 기본 답변 때문입니다. –
버전 1.1은 2013 년 4 월에 출시되었습니다. –
프로토콜 버퍼를 다시 구현하는 대신 C++/Delphi 브리지를 찾는 것이 더 나을 것입니다. 코드베이스는 꽤 큽니다.
적극적으로 유지 관리되는 것으로 보입니다. +1은 허용 된 답변이 2011 년 이후 동결되어 표시되지 않는 것으로 나타났습니다. –
나는 GitHub의에 another one을 발견했다. (2017 년 6 월 현재, 2007 년 2 월 2 일부터 7 월 20 일까지 개발 됨)
preliminary proto3 support 인 것으로 보입니다.
아직 테스트하지는 않았지만 현재로서는 최고 일 수 있습니다.
https://github.com/stijnsanders/DelphiProtocolBuffer
편집 : 내가이 시험 만 준비 유니 된 델파이로 작성되지 것 같습니다.
내가 (10 시애틀 사용) 발전기를 컴파일 할 수 있지만 컴파일 된 exe 인은
EDIT2 :-(싶어서 파일을 생성 할 수 없습니다 : 코드 생성기 그냥 TStreamReader에은 TStream를 교체 작품
/라이터 . 나는 발전기 최근 address book sample을 변환 할 수 있습니다 확인했다.
diff --git a/ProtBufParse.pas b/ProtBufParse.pas
index f29d7c7..cdd734d 100644
--- a/ProtBufParse.pas
+++ b/ProtBufParse.pas
@@ -236,16 +236,13 @@ var
procedure LoadCode;
var
- f:TFileStream;
+ sr:TStreamReader;
begin
- f:=TFileStream.Create(FilePath,fmOpenRead or fmShareDenyWrite);
+ sr:=TStreamReader.Create(FilePath, True{DetectBOM});
try
- //TODO: UTF-8? UTF-16?
- CodeL:=f.Size;
- SetLength(Code,CodeL);
- if f.Read(Code[1],CodeL)<>CodeL then RaiseLastOSError;
+ Code := sr.ReadToEnd;
finally
- f.Free;
+ sr.Free;
end;
end;
diff --git a/dpbp.dpr b/dpbp.dpr
index 4049480..b6dab90 100644
--- a/dpbp.dpr
+++ b/dpbp.dpr
@@ -22,7 +22,7 @@ var
p:TProtocolBufferParser;
s,t,InputFN,OutputFN,RelPath:string;
i,j,l,l1:integer;
- f:TFileStream;
+ sw:TStreamWriter;
fv:TProtocolBufferParserValue;
ff:TProtocolBufferParserFlag;
Flags:TProtocolBufferParserFlags;
@@ -134,11 +134,12 @@ begin
writeln('Writing '+OutputFN);
s:=p.GenerateUnit(Flags);
- f:=TFileStream.Create(OutputFN,fmCreate);
+
+ sw:=TStreamWriter.Create(OutputFN,False,TEncoding.UTF8);
try
- f.Write(s[1],Length(s));
+ sw.Write(s);
finally
- f.Free;
+ sw.Free;
end;
finally
- 1. 프로토콜 버퍼 MIME 문제
- 2. 프로토콜 버퍼 대안
- 3. c & C++ 프로토콜 버퍼
- 4. JPA가있는 프로토콜 버퍼
- 5. 델파이 문자열을 "const 버퍼"
- 6. Google 프로토콜 버퍼 - 고정 크기 버퍼?
- 7. 프로토콜 버퍼 사용 경험이 있습니까?
- 8. Java 프로토콜 버퍼 Ascii serialization
- 9. Java EE에서 프로토콜 버퍼 사용?
- 10. Google 프로토콜 버퍼 및 서블릿
- 11. 프로토콜 버퍼 자바 RPC 스택
- 12. Google 프로토콜 버퍼 및 HTTP
- 13. Objective-C에서 프로토콜 버퍼 사용
- 14. App Engine에서 JDO로 프로토콜 버퍼 모델을 유지합니다.
- 15. Google 프로토콜 버퍼 반복 필드 C++
- 16. Java NIO에서 Google 프로토콜 버퍼 사용
- 17. 매우 큰 문자열 메시지를 처리하는 프로토콜 버퍼?
- 18. 프로토콜 버퍼 및 UTF16 유니 코드
- 19. 프로토콜 버퍼 C# (protobuf-net) 메시지 :: ByteSize
- 20. Windows phone 7 프로토콜 버퍼 net
- 21. 옵션 필드가없는 프로토콜 버퍼 : 고정 크기?
- 22. 프로토콜 버퍼 + GWT의 모든 예는 무엇입니까?
- 23. 프로토콜 버퍼 이벤트에 대한 디자인 질문
- 24. 프로토콜 버퍼 배열의 낭비 된 바이트?
- 25. Google 프로토콜 버퍼 - C++에서 암호화, Java에서 해독 - InvalidProtocolBufferException
- 26. Google 프로토콜 버퍼 형식으로 간단한 온톨로지/계층 구조 만들기
- 27. Objective-C 및 Java가 포함 된 Google 프로토콜 버퍼
- 28. 프로토콜 버퍼 uint32 데이터가 항상 [0,255] 인 필드
- 29. Google 프로토콜 버퍼 또는 .net/javascript와 유사한 항목
- 30. 안드로이드 플랫폼에서 http로 프로토콜 버퍼 메시지를 효율적으로 전송
하드 나 자신 그것을 갈을 가지고 있다고 보지 않는다 (자신을?), 그것은 단지 시간 (시간!)의 난이 있었으면 좋겠다 하루에 몇 시간 더. –
아멘! 도우 려하고 처음부터 시작하지 않기를 바랬습니다. –
프로토콜 버퍼 사이트 : http://code.google.com/p/protobuf/ protobuf-net은 .net 구현입니다. http://code.google.com/p/protobuf-net/ 내가 처음 생각한 것보다 더 많은 일을해야합니다. 델파이에서 win32 또는 비 .net 버전을 사용하고 싶습니다. –