bonjour ,
j'ai un fichier txt qui contient (une entete a supprimé +données a récupérée) ,moi je veux récupérer ces données et les injecters dans une table oracle (10champs ) :
mon idée est de supprimé toutes les lignes qui sont inutiles donc l'idée est de nettoyer le fichier de ces lignes ,en utilisant une liste donc la quelle je déclare tout les début de ligne qui vont etre supprimé .
veuillez m'orienter , est ce que mon idée est bonne ?et si c'est possible de me fournir un script qui qui fait ce traitement .
public void RemoveTextLines(IList<string> linesToRemove)
{
// Read file
using (StreamReader sr = new StreamReader("a.txt"))
{
// Write new file
using (StreamWriter sw = new StreamWriter("b.txt"))
{
// Read lines
string line;
while ((line = sr.ReadLine()) != null)
{
// Look for text to remove
if (!this.ContainsString(line, linesToRemove))
{
// Keep lines that does not match
sw.WriteLine(line);
}
}
}
}
}
private bool ContainsString(string line, IList<string> linesToRemove)
{
foreach (string s in linesToRemove)
if (line.StartsWith(s))
return true;
return false;
}
le fichier "a.txt" contient les lignes suivantes :
asrety
sgfrhjk
etryuyy
cvbjkj
d
epokgth
berty
rtyu
pourquoi refaire un topic (cf. celui-ci) ?
Et encore une fois on est là pour "aider", pas pour "faire".
Commence à coder ton truc et viens nous voir quand tu coinces.
Et quand bien même un helper s'ennuierait au point de te faire ton truc, ça manque de précisions (contenu réel du fichier, structure de ta table Oracle ...).
j'ai commencé à codé mon traitement mais ça ne marche pas :
public static class TextLineRemover
{
public static void RemoveTextLines(IList<string> linesToRemove, string filename, string tempFilename)
{
// Initial values
int lineNumber = 0;
int linesRemoved = 0;
DateTime startTime = DateTime.Now;
// Read file
using (var sr = new StreamReader(monfichier))
{
// Write new file
using (var sw = new StreamWriter(tempFilename))
{
// Read lines
string line;
while ((line = sr.ReadLine()) != null)
{
lineNumber++;
// Look for text to remove
if (!ContainsString(line, linesToRemove))
{
// Keep lines that does not match
sw.WriteLine(line);
}
voici mon code mais je suis bloqué .......
plusieurs questions :
- la première, celle que n'importe qui te posera : quelle est l'erreur ?
- d'où sort la fonction ContainsString() ?
- sais-tu d'avance quelles lignes supprimer que tu puisses ainsi les mettre en paramètre de ta fonction ? (ça me parait un peu bizarre).
Sinon à part un manque d'accolade qui de toute façon t'empêcherait purement et simplement de compiler, ton code me parait correct.
Vous n’avez pas trouvé la réponse que vous recherchez ?