Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [c#]consigli su una conversione

    Ciao , avrei un problema.
    Leggendo da un DB riesco a prelevare i dati che vedere nell'immagine allegata.
    Li ricevo tramite un Array di Byte e li converto a stringa, ed ho come risultato le varie coppie alfanumeriche separate da un trattino.
    Ora dovrei convertirli in un formato simile a questo "313 6,314 6,314 4,314 4,314 3,314 2,315 1,316 1,316 0,316 0,317 0,318 0,318 1,319 2,320 2,321 3,322 3" che rappresentato delle coordinate di punti.
    Come potrei convertire il tutto?
    Ho provato con una Encoding.ASCII.GetString ma ricevo solo dei simboli.


    PS
    Originalmente il file la stringa che devo convertire era uguale a quella che ho io.

    Grazie in anticipo
    Immagini allegate Immagini allegate

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Ma i dati originali dove li hai ? Quella schermata non ce lo dice ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    i dati originali non li ho, praticamente devo confrontare i miei dati(le coordinate separate da virgola) con quelli presenti su di un DB (quelli dell'immagine), il problema è che non riesco a capire come hanno ottenuto quel formato a partire da una stringa come la mia.
    Ovviamente le stringhe non sono uguali, devo prelevare le coordinate dal DB , confrontarle con le mie e restituire (tra tutti gli oggetti di cui ho le coordinate) quello più vicino all'oggetto del DB(tramite distanza euclidea).

  4. #4
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    sembra che siano dati serializzati e successivamente memorizzati nel db. Senza conoscere la struttura che è stata serializzata è difficile riportare in vita quei dati. La buona notizia è che essendo coppie di numeri interi molto probabilmente quello che è stato serializzato non è altro che un array di qualche tipo primitivo intero. Quale esattamente bisognerebbe scoprirlo con qualche prova.

    codice:
    protected static string Prova(byte[] arr)
            {
                StringBuilder result = new StringBuilder();
                for (int i = 0; i < arr.Length; i += 4)
                {
                    byte[] b = new byte[4];
                    for (int j = 0; j < 4; j++)
                        b[j] = arr[i + j];
                    int r = BitConverter.ToInt32(b, 0);
    
                    result.AppendFormat("{0:d}-", r);
                }
    
                return result.ToString();
            }
    con questo per esempio puoi capire se sia stato serializzato un array di int (e provare ad evincerne l'ordine).

    Lo stesso esperimento (occhio alla giusta grandezza dell'array interno) lo puoi fare con diversi altri tipi (int16, uint32, ecc.)

    una volta capito come estrarre i dati puoi sistemarteli meglio nella stringa come meglio credi (trattini, spazi, virgole ecc.)

    good luck

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.