Hola.
Tengo un List con 3 registros (filas) y 6 propiedades(columnas). Todos ellos son números con 8 decimales, como se muestra a continuación:
0.00000000 376382.67000000 4085076.19000000 355.50970000 0.00000000 0.00000000222.46819837 376239.54748231 4085246.50748065 355.50970000 75.00000000 100.00000000
278.71819837 376207.65934740 4085292.60551717 373.41463110 0.00000000 100.00000000
La cuestión es que quiero pasar esos datos a un archivo ASCII (bloc de notas), (esto ya sé hacerlo), pero quiero que quede tabulado como se mostraba arriba, que queden todos los datos alineados por el separador decimal.
Yo lo hago con : System.IO.Stream myStream;
using (System.IO.StreamWriter myWritter = new System.IO.StreamWriter(myStream, System.Text.Encoding.ASCII))y para cada línea a añadir: myWritter.WriteLine(linea);
¿Existe alguna forma de tabularlo con alguna propiedad de StreamWriter?
ò tengo que programarlo por mi cuenta?
En caso de programarlo por mi cuenta, había pensado lo siguiente.
Pongamos que la primera columna es la propiedad longitud.
Ejemplo:
-se comprueba para la propiedad longitud, para cada registro, cúal tiene mayor número de dígitos en la parte entera de su número. (le llamo a esto EnteroMáximo como variable)
- para cada propiedad longitud de cada registro, se calcula el espaciado que deberá ir delante de su texto. Para ello, se calcula el número de dígitos (enteropropiedad) y se lo resto a EnteroMáximo. = diferencialDígitosEnteros.
- Compruebo en un switch case, con ese valor de diferencialDigititosEnteros, qué texto sería en espaciado.
Por ejemplo, si EnteroMáximo era 6 y enteropropiedad son 2, entonces diferencialDígitosEnteros= 4 y en el switch case, devolverá:
string espaciado=" "; (que tiene 4 espacios).
Y la variable espaciado, la coloco antes de copiar el texto de la propiedad.
Gracias.