Ciao a tutti, come va? spero bene o almeno meglio di quanto sta andandoa me oggi...
comunque volevo chiedere un'informazione......... ho creato una funzione che legge un blocco di caratteri, limettein un array di tipo Char e poi tramite un for e la concatenzaione creo una stringa...ho però dovuto usare un trucchetto: ho dovuto assegnare inizialmente alla stringa il valore '',per usare la concat. nel for....Ho poi gironzolato tra le funzioni di delphi per rovare qualcosa che facesse lo stesso lavoro e ho trovato setStr();
Allora ho variato la mia funzione,ma ho avutoun problema...l'array di char mi sicrea correttamente,ma il risultato della funzione setstr è sbagliato....mi cambia la conversione dei dagti dell'array...ora vifaccio vedere codice della funzione
function leggi_stringa(var fp: file; var lung: Integer): String;
var i,n,l: Integer;
buffer: array of Char;
bufPtr:PChar;
s:String;
begin
setlength(buffer,lung);
//s:='';
for i:=0 to lung-1 do
begin
BlockRead(fp,buffer[i],sizeof(Char),n);
end;
bufPtr:=Addr(buffer);
SetString(s, bufPtr, lung);
result:=s;
end;
buffer contiene in ogni elemento i caratteri giusti, mentre in uscita di setString() ottengo una
stringa totalmente diversa
ex buffer:=('1'.'2.'.'8','4',etccc,#0); ed è giusto
in uscita ho s='UC--','1,'#0#0#ETCC..) che non centra niente con ilcontenutodi buffer, inoltre bufPtr puntatore dell'array me lo ritrovo in testa a s in quanto è proprio UC--....NON CAPISCO
HO LETTOLA SPIEGAZIONE fornitami sui tutorial e visto gli esempi...scritti uguali,..il compilatore non mi da errori.....ho paura che l'errore sia dovuto all'uso di array dinamico o della blockread...........sapete darmi delucidazioni in merito all'argomento ? grazie e ciao