Как мне сделать "foreach (строка TXTname в именах)" переменной без foreach или мне нужен foreach? - PullRequest
0 голосов
/ 03 октября 2019

Итак, я пытаюсь сохранить переменные в текстовых файлах, чтобы моя программа могла вызывать их позже, но мне нужно, чтобы у файлов были заданные имена, и когда я пытаюсь, это никогда не работает правильно.

Я пробовалимея цикл foreach в цикле foreach, я пробовал так много вещей, но все они просто переворачивают переменные данные

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);
    }
}

Нет сообщений об ошибках, но при открытии текстового файла остается только одинтекстовый файл, или все они имеют одинаковые слова, или это просто искаженный текст, я ожидаю, что будет правильное имя файла с правильным текстом.

Ответы [ 3 ]

1 голос
/ 04 октября 2019

Я такой тупой, я провел больше исследований и нашел .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 голосов
/ 03 октября 2019

Как видно из кода, циклы foreach являются отдельными.

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);
                }
            }
        }

Попробуйте использовать приведенный выше код

0 голосов
/ 03 октября 2019
  1. Вам необходимо поместить второй foreach в пределах первого foreach.
  2. Если они являются строковыми переменными, в качестве эксперимента используйте для создания своих файлов следующее:
string getNameOfVar = nameof(line);
var path = $@"C:\Users\gn193755\Documents\{TXTname}.txt");
File.WriteAllText(path, line);

Попробуйте, чтобы строки строк были написаны правильно:

var path = $@"C:\Users\gn193755\Documents\output.txt");
File.AppendAllText(path, line);
...