Ajuda - Aplicação para adicionar texto a ficheiro existente
|
09-02-2010, 10:31
(Esta mensagem foi modificada pela última vez a: 09-02-2010 10:33 por aucrun.)
Mensagem: #10
|
|||
|
|||
RE: Ajuda - Aplicação para adicionar texto a ficheiro existente
Então cá vamos ...
Finalmente tive um tempinho para te fazer a Classe. Repara, antes do mais que se trata duma Classe, mas no entanto, podes sempre usar as funções que te envio noutras Classes ou Forms. A parte inicial, corresponde apenas às Propriedades da Classe, onde tens identificadas as variáveis que vão entrar no seu funcionamento. Para chamares a classe terás de a inicializar com os parâmetros que são essenciais, ou seja algo do género: List<string> listaTestes = new List<string>(); listaTestes.Add("Item 1"); listaTestes.Add("Item 2"); listaTestes.Add("Item 3"); CPlayList lista = new CPlayList("C:\\Temp", "fileTeste.log", listaTestes); Quanto à classe propriamente dita, é simples, e apenas faz o seguinte: - Aceita os parâmetros acima instanciados; - Verifica se todos estão preenchidos - Verifica se já existe algum ficheiro com o mesmo nome na mesma directoria (e neste caso apaga-o, embora possas fazer o que bem entenderes) - Cria o ficheiro, começando pelas 2 linhas iniciais constantes, colocando o conteúdo da Lista Variável, e terminando com as 2 ultimas linhas constantes. class CPlayList { string path = ""; string fileName = ""; List<string> entriesList = null; const string firstRow = "<ASX version='3.0'>"; const string secondRow = "<REPEAT>"; const string iniText = "<ENTRY><REF href="; const string endText = "/></ENTRY>"; const string almostLastRow = "</REPEAT>"; const string lastRow = "</ASX>"; public string msgErro = ""; public CPlayList(string caminho, string ficheiroComExtensao, List<string> listaEntradas) { path = caminho; fileName = ficheiroComExtensao; entriesList = listaEntradas; CriaPlayList(); } public bool CriaPlayList() { msgErro = ""; try { if((path=="") || (fileName=="") || (entriesList==null) || (entriesList.Count==0)) { msgErro="Há valores que não se encontram preenchidos"; return false; } //ELIMINAR O FICHEIRO CASO EXISTA if (!EliminaPreviousFile(out msgErro)) { msgErro += " - ERRO: Ocorreu um erro ao eliminar o ficheiro"; return false; } //IDENTIFICAR O FICHEIRO (COM CAMINHO COMPLETO) PARA CRIAR COM A PLAYLIST. string ficheiro = path + "\\" + fileName; //ADICIONAR AS DUAS PRIMEIRAS LINHAS QUE SÃO CONSTANTES File.AppendAllText(ficheiro, firstRow); File.AppendAllText(ficheiro, System.Environment.NewLine + secondRow); //INSERIR A LISTA foreach (string itemLista in entriesList) { string inputText = System.Environment.NewLine + iniText + itemLista + endText; File.AppendAllText(ficheiro, inputText); } //ADICIONAR AS DUAS ULTIMAS LINHAS QUE SÃO CONSTANTES File.AppendAllText(ficheiro, System.Environment.NewLine + almostLastRow); File.AppendAllText(ficheiro, System.Environment.NewLine + lastRow); return true; } catch (Exception ex) { msgErro = ex.Message; return false; } } private bool EliminaPreviousFile(out string msgErro) { msgErro = ""; try { if (File.Exists(path + "\\" + fileName)) File.Delete(path + "\\" + fileName); return true; } catch (Exception ex) { msgErro = ex.Message; return false; } } } A negrito estão os títulos das Funções, e com "//" estão alguns comentários meus. Espero que te ajude, e qualquer duvida, já sabes ... |
|||
« Mais Antigo | Mais Recente »
|
Utilizadores a ver este tópico: 3 Visitante(s)