have jstringtostring or stringtojstring. how can i convert byte to JByte (or other variables types)?
....
var x:jbyte;
begin
x:=bytetojbyte(65);
....
end;
thanks.
have jstringtostring or stringtojstring. how can i convert byte to JByte (or other variables types)?
....
var x:jbyte;
begin
x:=bytetojbyte(65);
....
end;
thanks.
On
function stringtoJbyte(metin:string):TJavaArray<Byte>;
var
buffer: TJavaArray<Byte>;
i:integer;
begin
buffer := TJavaArray<Byte>.Create(length(metin)+1);
for i := 1 to Length(metin) do
buffer.Items[i]:= ord( (metin[i-1]) );
result:=buffer;
end;
I use this code! it work for me. thanks again remy lebeau..
encoded (for ı ş İ ç ö ğ ...) function;
function stringtoJbyte(metin:String):TJavaArray<byte>;
var
buffer: TJavaArray<byte>;
bufferByte:TArray<byte>;
i,len:integer;
begin
bufferByte:=TEncoding.UTF8.GetBytes(metin);
//len:=ByteLength(metin);
len:=length(bufferByte);
buffer := TJavaArray<byte>.Create(len+1);
for i := 0 to len do
buffer.Items[i+1]:=bufferByte[i] ;
result:=buffer;
end;
java.io.OutputStream.write()expects abyte[](ie, an array of bytes) as input. Delphi'sJByteinterface is a JNI wrapper for thejava.lang.Byteclass, which is itself a Java object wrapper for a singlebytevalue.JBytedoes not represent an array of bytes, so you cannot useJBytewithOutputStream.write().If you look at the declaration of Delphi's
JOutputStreaminterface (the JNI wrapper forjava.io.OutputStream) in theAndroidapi.JNI.JavaTypesunit, it haswrite()methods that expectTJavaArray<Byte>as input.TJavaArray<T>is declared in theAndroidapi.JNIBridgeunit. If you are trying to pass a data buffer from your Delphi code toOutputStream.write(), you will have to declare aTJavaArray<Byte>variable, allocate it to the desired length, and copy your data into it, eg: