Innanzitutto grazie per le risposte che apprezzo moltissimo
Sono concorde sull'uso facilitato che si fa con i csv rispetto al txt, ma vorrei comunque seguire questa strada e riuscirci sia perchè ormai è diventata una questione personale che devo riuscire sia perchè comunque voglio capire il meccanismo corretto.
Porto un esempio più chiaro, prima ho lasciato dati di esempio per generare qualcosa da scrivere sul file.
La funzione VerifiaFile viene richiamata subito dopo la funzione Buy o Sell e ha il compito di scrivere su file tutte le informazioni dell'ordine aperto quali ticket, orario apertura, ecccc..... Crea un file per ogni giorno diverso con dentro tutti gli ordini eseguiti.
Attualmente sto cercando invano di fare così:
buffer è una stringa dichiarata globalmente. Praticamente così salvo l'intera informazione li dentro e la scrivo para para dentro il file. Non mi sembra una bella soluzione, per niente..... ma anche così quando crea il file mi segna 0k ed è vuoto.
Perchè voglio leggere una riga? Perchè voglio aggiungere il profitto quando l'ordine viene chiuso. Quindi ricerco tra gli ordini chiusi il ticket che ho trovato leggendo quel file e mi prendo il profitto andandolo a scrivere dopo sul file.
Sono concorde sull'uso facilitato che si fa con i csv rispetto al txt, ma vorrei comunque seguire questa strada e riuscirci sia perchè ormai è diventata una questione personale che devo riuscire sia perchè comunque voglio capire il meccanismo corretto.
Porto un esempio più chiaro, prima ho lasciato dati di esempio per generare qualcosa da scrivere sul file.
La funzione VerifiaFile viene richiamata subito dopo la funzione Buy o Sell e ha il compito di scrivere su file tutte le informazioni dell'ordine aperto quali ticket, orario apertura, ecccc..... Crea un file per ogni giorno diverso con dentro tutti gli ordini eseguiti.
Attualmente sto cercando invano di fare così:
Code:
//+------------------------------------------------------------------+ //| CreaFile() | //+------------------------------------------------------------------+ void CreaFile(string date, string Record){ string nome=g_NomeFile+" "+date+".txt"; string nl = "\r\n"; string h1=nl+ "+------------------------------------------------------------------------------+"+nl+ "+ Informazioni Valori Aperture ordini +"+nl+ "+==========+==================+=====+========+===================+=============+"+nl+ "+ Ticket | Apertura | Lot | Cross | Commento | RSI +"+nl+ "+==========+==================+=====+========+===================+=============+"+nl; File=FileOpen(nome,FILE_BIN|FILE_SHARE_READ|FILE_WRITE); if(File != -1) { buffer=h1=h1+Record; FileWriteString(File,h1, StringLen(h1)); } else Print("Errore ",GetLastError()," - File non creato!!!"); } //+------------------------------------------------------------------+ //| VerificaFile() | //+------------------------------------------------------------------+ void VerificaFile(int Ticket, string data,string OrarioAP, double Lottx, string cross, string comment,double RSI){ string Riga=StringConcatenate("+ " , Ticket , " | " + OrarioAP + " | " , Lottx , " | " + cross + " | " + comment + " | " , NormalizeDouble(RSI,2) , " +" , Volume[0] , "\r\n"); string nome=NomeFile+" "+data+".txt"; buffer=buffer+Riga; if (FileIsExist(nome)){ FileWriteString(File,buffer, StringLen(buffer)); FileFlush(File); } else { FileClose(File); CreaFile(data,Riga);} }
buffer è una stringa dichiarata globalmente. Praticamente così salvo l'intera informazione li dentro e la scrivo para para dentro il file. Non mi sembra una bella soluzione, per niente..... ma anche così quando crea il file mi segna 0k ed è vuoto.
Perchè voglio leggere una riga? Perchè voglio aggiungere il profitto quando l'ordine viene chiuso. Quindi ricerco tra gli ordini chiusi il ticket che ho trovato leggendo quel file e mi prendo il profitto andandolo a scrivere dopo sul file.
Comment