Hola mi pregunta es si por ejemplo añado varios datos a mi fichero usando el método eof (end of file), ejemplo:
mifichero + delimitador + (nombre+apellido) + delimitador
puedo luego leerlo ? lo que intentaba era añadirlo, luego leerlo y usando regex recuperar cada uno de los valores. Primero no me lo lee una vez que lo añado que estoy haciendo mal? el codigo es:
using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Text.RegularExpressions; namespace builder { class builder_tools { static void Main() { // Examples : builder_tools tools = new builder_tools(); tools.escribir_eof("programa.exe","hola mundo [nombre]miembro[nombre][apellido]sdasd[apellido]","key"); Console.Write(tools.leer_eof("programa.exe", "key")); } public string xor_now(string linea, string key) { // Credits : Based on http://stackoverflow.com/questions/2532668/help-me-with-xor-encryption // Thanks to Daniel Earwicker var contenido = new StringBuilder(); for (int i = 0; i < linea.Length; i++) { contenido.Append((char)((uint)linea[i] ^ (uint)key[i % key.Length])); } return contenido.ToString(); } public bool escribir_eof(string archivo, string texto, string key) { string delimitador = "-0x646F646479206861636B6D616E-"; FileStream abriendo = new FileStream(archivo, FileMode.Append); BinaryWriter seteando = new BinaryWriter(abriendo); seteando.Write(delimitador + xor_now(texto, key) + delimitador); seteando.Flush(); seteando.Close(); abriendo.Close(); return true; } public string leer_eof(string archivo, string key) { StreamReader viendo = new StreamReader(archivo); string contenido = viendo.ReadToEnd(); string rta = ""; Match regex = Regex.Match(contenido, "-0x646F646479206861636B6D616E-(.*?)-0x646F646479206861636B6D616E-", RegexOptions.IgnoreCase); if (regex.Success) { rta = xor_now(regex.Groups[1].Value, key); } else { rta = "WTF!"; } return rta; } } }
Lo que intentaba esque cuando lo escriba lo añada. y luego usando regex recupere cada uno de los datos usando un delimitador. Yo pienso que el problema esta en que al añadir el delimitador y el texto como cadena da error, pero si lo paso a byte y luego lo leo no debería haber problemas. alguna sugerencia?