-1
votes

Comment faire "foreach (chaîne txtname dans les noms)" une variable sans le forach ou ai-je besoin du forach?

J'essaie donc de stocker des variables sur des fichiers texte afin que mon programme puisse les appeler ultérieurement, mais j'ai besoin que les fichiers ont des noms définis et quand j'essaie que cela ne fonctionne jamais correctement.

J'ai essayé de faire boucle dans une boucle de foresach, j'ai essayé tant de choses mais toutes les personnes qui viennent tout simplement vis sur les données variables xxx

aucun message d'erreur, mais quand j'ouvre le fichier texte, il y a Soit seulement un fichier texte, ou ils ont tous les mêmes mots sur eux, ou ils sont simplement brassés de texte, je continue à attendre qu'il y ait le nom de fichier correct avec le texte correct.


5 commentaires

Où sont les variables dans string [] lignes = {} déclarée? dessus? Quel type sont-ils? sont-ils des objets? Quel format avez-vous besoin de les sauvegarder?


Ce sont des variables de string


Merci d'avoir pris le temps de partager votre problème. Mais le code que vous avez fourni ne peut pas compiler en raison d'erreurs d'écriture. Pour vous aider à améliorer le contenu, le titre et les tags de votre requête, envisagez de lire le Comment puis-je poser une bonne question < / a> qui est dans le centre d'aide.


Voir ma réponse sur l'erreur de syntaxe et changer la façon dont vous écrivez les fichiers


L'op utilise txtname hors de la première boucle dans la seconde.


3 Réponses :


0
votes
  1. Vous devez placer, le second pourchaîchement dans le premier pourchef. Li>
  2. S'ils sont des variables de chaîne, comme une expérience utilise ce qui suit pour créer vos fichiers li>
    var path = $@"C:\Users\gn193755\Documents\output.txt");
    File.AppendAllText(path, line);
    

5 commentaires

J'ai essayé cela avant et ça n'a jamais travaillé mais mal essayez à nouveau


Cela simplifiait beaucoup le code et le problème n'était pas aussi mauvais qu'auparavant, mais cela a toujours des problèmes, il y a mal de bricoler avec cette


Voici ce que je suis venu avec


foreach (chaîne ligne dans lignes) {foreach (string txtname dans les noms) {console.writeline ($ "sauvegarde {txtname}"); troisième chemin = $ @ "c: \ utilisateurs \ gn193755 \ documents \ {txtname} .txt"; Fichier.writetealltext (chemin, ligne); }}


Remplacer fichier.writetealltext (chemin, ligne); avec fichier.appendalltext (chemin, ligne); et juste le code du fichier sur sortie.txt < / code>



0
votes

Comme on le voit dans le code, les boucles de forach sont séparées.

string[] lines = { name, FirstBlock, MonIstem, WedIstem, ThridBlock, FourthBlock, "Design Time", SixthBlock, TueIstem, ThurIstem, EighthBlock, NinthBlock, "Design Time", FriIstem };
string[] names = { "name", "FirstBlock", "MonIstem", "WedIstem", "ThirdBlock", "FourthBlock", "Design Time", "SixthBlock", "TueIstem", "ThurIstem", "EightBlock", "NinthBlock", "Design Time", "FriIstem", };
        foreach (string TXTname in names)
        {
                Console.WriteLine($"Saving {TXTname}");

            foreach (string line in lines)
            {

                string getNameOfVar = nameof(line);
                using (FileStream bs = File.OpenWrite($@"C:\Users\gn193755\Documents\{TXTname}.txt"))
                {
                    byte[] thing = new UTF8Encoding(true).GetBytes(line);
                    bs.Write(thing, 0, thing.Length);
                }
            }
        }


1 commentaires

Je rencontre le même problème que j'ai rencontré tout le temps, ils ont tous les mêmes données sur eux.



1
votes

Je suis tellement muet, j'ai fait plus de recherches et j'ai trouvé la chose .zip.

               var lines = new [] { name, FirstBlock, MonIstem, WedIstem, ThridBlock, FourthBlock, "Design Time", SixthBlock, TueIstem, ThurIstem, EighthBlock, NinthBlock, "Design Time", FriIstem };
            var names = new [] { "name", "FirstBlock", "MonIstem", "WedIstem", "ThirdBlock", "FourthBlock", "Design Time", "SixthBlock", "TueIstem", "ThurIstem", "EightBlock", "NinthBlock", "Design Time", "FriIstem", };
            var linesAndnames = lines.Zip(names, (l, n) => new { Line = l, Name = n });
            foreach (var ln  in linesAndnames)
            {
              var path = $@"C:\Users\gn193755\Documents\{ln.Name}.txt";
              File.WriteAllText(path, ln.Line);
            }
        }


0 commentaires