Pregunta

En mi página web Estoy intentando descargar un archivo CSV que viene de Yahoo. Contiene algunos datos.

Estoy utilizando el código indicado a continuación para descargar CSV.

Problema:

Quiero descargar y obtener todos los datos desde CSV de Yahoo, pero todo el CSV no está recibiendo creado de mi lado.

Sólo una parte de los datos se copian. Así CSV no se descarga con todos sus datos.

He intentado aumentar el tamaño del búfer, pero eso no ayuda

datos en formato CSV de Yahoo es como se muestra a continuación en la pantalla. Estos son los datos Quiero descargar

text alt

Los datos que tengo en CSV creado, al descargar CSV de la misma Yahoo es como se muestra a continuación.

text alt

código que estoy utilizando para descargar el archivo CSV de Yahoo

HttpWebRequest wr = (HttpWebRequest)WebRequest.Create("http://download.finance.yahoo.com/d/quotes.csv?s=^DJI+^N225+^GSPC+^GDAXI+^FCHI+^HSI+^IXIC+^FTSE&f=l1d14n");
        HttpWebResponse ws = (HttpWebResponse)wr.GetResponse();
        Stream str = ws.GetResponseStream();
        inBuf = new Byte[10000000];
        int bytesToRead = Convert.ToInt32(inBuf.ToString().Length);

        int bytesRead=0;
        while(bytesToRead>0)
        {
            int n = str.Read(inBuf,bytesRead,bytesToRead);
            if(n==0)
            {
                break;
            }
            bytesRead += n;
            bytesToRead -= n;
        }
        FileStream fstr = new FileStream("C:\\VSS Working Folder\\20th Jan 11 NewHive\\NewHive\\CSV\\new.csv", FileMode.OpenOrCreate, FileAccess.Write);
        fstr.Write(inBuf,0,bytesRead);
        str.Close();
        fstr.Close();
        return "CSV Downloaded Successfully!";

¿Qué podría estar mal?

¿Fue útil?

Solución

inBuf.ToString() le da "System.Byte []" y la longitud de esa cadena es 13. Por lo que sólo está ahorrando 13 caracteres que sólo le dará 10274.52,"1/2 desde el archivo descargado.

Se puede obtener la longitud usando inBuf.Length. Tenga en cuenta que Length devuelve un int por lo que no es necesario fundido a un int.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top