Buenas tardes gente,
Estoy realizando la decodificacion de tramas en base64, bajo el lenguaje delphi7, efectivamente ya he visto varios hilos relacionados al tema los cuales me han sido muy útiles e ido mejorando.
Les comento: tengo varias tramas codificadas en base64, las cuales contienen estas imágenes (https://ibb.co/fQsR0Zk) que necesito replicar exactamente en delphi7. Dicho esto me gustaría vieran lo que he logrado aquí => (https://ibb.co/c3PmMw8). todas las gráficas que debo extraer se dividen en histogramas y disperso gramas.
Ahora bien, tengo explicita mente dos problemas, cuales son:
1. La trama recibida del equipo medico trae varios campos y justo antes del campo que trae la trama codificada, vienen unos datos que delimitan los histogramas asi (<<32\200|AAAAAAAAA......>>), es decir discriminan-tes, la campana del histograma me las devuelve correctamente pero no caen dentro del rango correcto. Por ejemplo: decodifico un histograma PLT y la figura es extraída correctamente pero debe estar dentro de un discriminaste de 30 y 200 sobre el eje x, pero ese detalle obviamente no lo trae la trama, por lo que debo especificarlo yo en el tchart sobre el que dibujo el gráfico, ya he buscado y manejado las propiedades axis de estos componentes y no se como establecerle dichos discriminantes.
2. Los dispersogramas no me dan las orientaciones correspondientes a las solicitadas en el tchart... (mi jefe esta q me ahorca jaj!. y no se que hacer).
Me gustaría mostrarles el código implementado para cada gráfico (histogramas y dispersogramas) y me corrijáis si estoy haciendo algo incorrecto:
NOTA IMPORTANTE: leer el adjunto que les adjunte de como tratar los dispersogramas, no se como tratar las tramas como 2000 arrays de 5 bytes.... AYUDA POR FAVOR!!
//lo unico que me falta en este codigo es establecerle los discriminantes sobre el eje x y SOBRE EL COMPONENTE Tchart. //que aún no consigo establecerle, ya que al hacer uso de la propiedad axis y ticks y grids, no hallo la forma de establecerlos procedure TFrHistogramas.dibujarHistogramas(memo: TMemo;serie: TChartSeries); var datos_codificado: PByteArray; i,longitud: Integer; begin serie.Clear; if Length(Trim(memo.Lines.Text)) > 0 then begin datos_codificado:= StrToBin(memo.Lines.Text, longitud, True); if (datos_codificado <> nil) and (longitud > 0) then begin try with serie do begin Marks.Visible:= False; for i:=0 to longitud -1 do Add(datos_codificado[i]); end; finally FreeMem(datos_codificado); end; end; end; end; //en este codigo aparte de establecerle los discriminantes, no logro replicar las orientaciones de las //coordenadas correctamente por lo que el grafico sale distorsionado procedure TFrScatterGram.dibujarScattergram(memo: TMemo; serie: TChartSeries); var datos_codificado: PByteArray; x, y, i, longitud, color: Integer; begin serie.Clear; i:=0; if Length(Trim(memo.Lines.Text)) > 0 then begin datos_codificado:= PByteArray(StrToBin(memo.Lines.Text, longitud, True)); if (datos_codificado <> nil) and (longitud > 0) then begin try with serie do begin //para mi: el error esta aqui en la forma de leer los bytes, NO SE QUE HACER... while i < (longitud div 5) do begin x:= datos_codificado[i] and $FF; y:= (datos_codificado[i+1]); //color:= datos_codificado[i] shr RGB(255 * Random(1), 255 * Random(1), 255 * Random(1)); i:=i+2; AddXY(x,y, '', clWhite); end; end; finally FreeMem(datos_codificado); end; end; end; end;
adjuntarles también las tramas en base64 correspondientes a los dispersogramas (que es lo que mas imperativo en este momento). Estoy "casi segura" que el error esta en como se están leyendo los bytes. (archivo TRAMAS.txt).
Y adjunto también información relacionada en el manual respecto a como tratar los dispersogramas. (Manual_comoTratarDispersogramas.txt).
Agradezco vuestra ayuda en el tema y me colaboréis en el perfeccionamiento de estos gráficos ya que no se que mas hacer.
Muchas gracias antes que nada por leer este post