Chirurgia spinală minim invazivă
Chirurgia spinală minim invazivă oferă pacienților oportunitatea unui tratament eficient, permițându-le o recuperare ultra rapidă și nu în ultimul rând minimizând leziunile induse chirurgical. Echipa noastră utilizează un spectru larg de tehnici minim invazive, din care enumerăm câteva: endoscopia cu variantele ei (transnazală, transtoracică, transmusculară, etc), microscopul operator, abordurile trans tubulare și nu în ultimul rând infiltrațiile la toate nivelurile coloanei vertebrale. www.neurohope.ro |
Copiere valori hex in text
Last Updated: May 10 2017 14:52, Started by
diaconuliviu
, May 09 2017 15:28
·
0
#1
Posted 09 May 2017 - 15:28
Am o iteratie care preia un sir de valori hexa
De ex i=1 => A0 1C CB 4A i=2 => A5 CC 1B 22 .... i=100 => A1 11 CF 12 As vrea ca pe toate, linie cu linie sa le scriu intr-un fisier txt. Nu pot din Delphi, ori incerc sa scriu din byte in txt si da eroare..etc Am incercat varii functii, majorotatea gasite folosesc CHR(X), transformind hex-ul in litera. Nu asta vreau Ci transpunerea de ex $A0 in A0 in txt. Ma ajuta cineva? Multumesc! |
#2
Posted 09 May 2017 - 15:31
Adica primesti un sir de octeti si-l vrei pus intr-un fisier. Se poate si in Delphi si in oricare alt limbaj. Tu ce folosesti in mod curent?
|
#3
Posted 09 May 2017 - 19:02
Delphi 7.
Sirul ala il vreau in fisier txt. Sub forma aratata, adica lista de cite 4 octeti pe linie... Edited by diaconuliviu, 09 May 2017 - 19:03. |
#4
Posted 09 May 2017 - 19:06
Ia posteaza codul ala de zici ca da eroare! E o scriere banala in fisier pana la urma.
|
#5
Posted 09 May 2017 - 19:22
"IAssignFile(F_Serii, 'Serii.txt');
Append(F_Serii); sSerie:=''; sSerie:=bin[i]; sSerie:=sSerie+' '; sSerie:=sSerie+bin[i+$1]; .... sserie=string bin[i]=byte eroare de tip de variabila Incompatible variable string and byte Edited by diaconuliviu, 09 May 2017 - 19:34. |
#6
Posted 09 May 2017 - 20:36
sSerie:=sSerie+Chr(bin[i]);
Astfel formezi un string compus din caracterul/octetul fiecarui numar din elementele vectorului bin si scrii la final in fisier: Writeln(F_Serii, sSerie); |
#7
Posted 09 May 2017 - 21:09
Si am si spus ca NU asta imi doresc.
Adica chr($30)=0, Chr($31)=1.. Ori eu vreau asa Fie sirul 30 31 30 31 (BYTES) Eu il vreau ca atare in Fisier.txt adica pe o linie sa apara 30313031 sau 30 31 30 31 (as prefera acele spatii) Cu functia Chr in fisier va apare: 0 1 0 1 Am gasit singura functie care mi-a mers dar..fara acele spatii de care spuneam: function bintostr(const bin: array of byte): string; const HexSymbols = '0123456789ABCDEF'; var i: integer; begin SetLength(Result, 2*Length(bin)); for i := 0 to Length(bin)-1 do begin Result[1 + 2*i + 0] := HexSymbols[1 + bin[i] shr 4]; Result[1 + 2*i + 1] := HexSymbols[1 + bin[i] and $0F]; end; end; Neajunsul e ca scrie de ex bin=AC 12 34 DC => TXT=AC1234DC, FARA SPATII. Dar, na, e bine si asa. Edited by diaconuliviu, 09 May 2017 - 21:14. |
#9
Posted 09 May 2017 - 21:32
Multumesc..o sa ma uit si la ea..la prima vedere pare ca te lasa sa pui si acele spatii intre "bytes"
|
#10
Posted 09 May 2017 - 21:35
"Te lasa" ca i le pui tu dupa fiecare byte.
Insa poti modifica si functia ta sa lase un spatiu: function bintostr(const bin: array of byte): string; const HexSymbols = '0123456789ABCDEF'; var i: integer; begin SetLength(Result, 3*Length(bin)); for i := 0 to Length(bin)-1 do begin Result[1 + 3*i + 0] := HexSymbols[1 + bin[i] shr 4]; Result[1 + 3*i + 1] := HexSymbols[1 + bin[i] and $0F]; Result[1 + 3*i + 2] := ' '; end; end; Edited by neagu_laurentiu, 09 May 2017 - 21:36. |
|
#11
Posted 10 May 2017 - 14:52
"Te lasa"=e chiar pus acel ' ' sau '-'..
Multam pt modificare, e perfect asa... |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users