Qualcuno sa di un progetto per eseguire un'implementazione dei buffer del protocollo Google in Delphi?Buffer protocollo Delphi?
risposta
Questo progetto contiene l'implementazione di buffer di protocollo per Delphi. Dal progetto è stata implementata la funzionalità limitata necessaria per un progetto specifico. A quel tempo, non ho alcun senso trasferire l'intero codice del progetto. http://sourceforge.net/projects/protobuf-delphi/
e non è stato più toccato dal 2011. Vedi sotto per la risposta Fundamentals che sembra essere ancora attivamente mantenuta. –
La versione 1.1 è stata rilasciata nell'aprile 2013. –
Potrebbe essere meglio trovare/creare un bridge C++/Delphi piuttosto che riutilizzare i buffer del protocollo. Il codebase è piuttosto grande.
Sembra che i buffer di protocollo siano più ricchi di funzionalità poiché consentono ad esempio elementi facoltativi, quindi è più vicino a un protocollo XML + XSD/WSDL/SOAP che a un formato di serializzazione – mjn
Qui:
Fundamentals buffer protocollo 4.00.01 (10 Feb 2013)
Google buffer protocollo
Sembra essere attivamente mantenuto. +1 per questo mentre la risposta accettata sembra essere congelata e mai toccata dal 2011. –
ho trovato another one sul github. (sviluppato da febbraio 2014 a luglio 2016, da giugno 2017)
Sembra che abbia preliminary proto3 support.
Non ho ancora testato, ma potrebbe essere il migliore fino ad oggi.
https://github.com/stijnsanders/DelphiProtocolBuffer
EDIT: ho provato questo, ma sembra essere scritto in Delphi vecchio e non unicode pronto.
ho potuto compilare il generatore (utilizzando 10 Seattle), ma exe compilato non sono riuscito a generare il file pas :-(
EDIT2:
Il generatore di codice funziona solo sostituendo TStream a TStreamReader/Writer . ho confermato generatore in grado di convertire recente 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. Registrazione buffer di protocollo
- 2. Protocollo Buffer: Enum problema
- 3. buffer protocollo Java RPC Pila
- 4. Alternative ai buffer di protocollo
- 5. dizionario nel buffer di protocollo
- 6. Buffer di protocollo, dove usarli?
- 7. Java serializzazione con protocollo Buffer
- 8. Buffer per Android e Protocollo
- 9. Boost.Asio con i buffer del protocollo google
- 10. Scala Akka e buffer di protocollo
- 11. Buffer del protocollo di Google in C#
- 12. Compilatore dei buffer del protocollo Scala
- 13. Estensione dei buffer di protocollo in Java
- 14. Installare i buffer di protocollo su Windows
- 15. I buffer del protocollo Google confrontano
- 16. Come utilizzare i buffer di protocollo?
- 17. Streaming file in Delphi - Dimensione buffer ottimale
- 18. Penalità di prestazioni di getSerializedSize() in buffer di protocollo
- 19. Uso buffer di protocollo per la registrazione binaria
- 20. buffer di protocollo google vs JSON vs XML
- 21. Buffer del protocollo C++, invio di array intero
- 22. Progetto Python utilizzando buffer di protocollo, Problemi di distribuzione
- 23. Utilizzo del buffer del protocollo come oggetto dati generale?
- 24. È possibile simulare un messaggio del buffer del protocollo Java?
- 25. Come creare un buffer di protocollo da Android NDK
- 26. come utilizzare il buffer di protocollo in asp.net vnext?
- 27. errore di protocollo Buffer sulla compilazione durante il check GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
- 28. File di input mancante con protoc nel buffer di protocollo
- 29. Esistono database che supportano i buffer di protocollo?
- 30. Come leggere il buffer del protocollo GTFS in PHP?
non sembra così difficile da avere un andare a io stesso (solo?), è solo il tempo (il tempo !!) mi piacerebbe avere un poche ore in più al giorno. –
Amen! Speravo di aiutare e non iniziare da zero. –
Sito Protocol Buffers: http://code.google.com/p/protobuf/ protobuf-net è un'implementazione .net: http://code.google.com/p/protobuf-net/ in base al sopra deve essere più lavoro di quanto pensassi prima. Vorrei una versione win32 o non .net in Delphi. –