С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
ЧакЭ одобряЭ
 Аватар для Artishok
285 / 284 / 86
Регистрация: 27.12.2009
Сообщений: 1,767

Не записывает всю информацию в файл

04.09.2011, 13:46. Показов 2538. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
И снова я((
суть в том что информацию, которую я извлекаю из текстового файла построчно я вывожу на экран, а под каждой строкой записываю зашифрованный эквивалент. на консольном экране все строки выводятся. а в файл попадают не все строки.
то что записано в файл

WHERE CAN YOU FIND PLEASURE
SEARCH THE WORLD FOR TREASURE
LEARN SCIENCE TECHNOLOGY
WHERE CAN YOU BEGIN TO MAKE YOUR DREAMS ALL COME TRUE
ON THE LAND OR ON THE SEA
WHERE CAN YOU LEARN TO FLY
PLAY IN SPORTS AND SKIN DIVE
STUDY OCEANOGRAPHY
SIGN UP FOR THE BIG BAND
OR SIT IN THE GRANDSTAND
WHEN YOUR TEAM AND OTHERS MEET


IN THE NAVY
YES, YOU CAN SAIL THE SEVEN SEAS
IN THE NAVY
YES, YOU CAN PUT YOUR MIND AT EASE
IN THE NAVY
COME ON NOW, PEOPLE, MAKE A STAND
IN THE NAVY, IN THE NAVY
CAN'T YOU SEE WE NEED A HAND
IN THE NAVY
COME ON, PROTECT THE MOTHERLAND
IN THE NAVY
COME ON AND JOIN YOUR FELLOW MAN
IN THE NAVY
COME ON PEOPLE, AND MAKE A STAND
IN THE NAVY, IN THE NAVY, IN THE NAVY (IN THE NAVY)


THEY WANT YOU, THEY WANT YOU
THEY WANT YOU AS A NEW RECRUIT


IF YOU LIKE ADVENTURE
DON'T YOU WAIT TO ENTER
THE RECRUITING OFFICE FAST
DON'T YOU HESITATE
THERE IS NO NEED TO WAIT
THEY'RE SIGNING UP NEW SEAMEN FAST
MAYBE YOU ARE TOO YOUNG
TO JOIN UP TODAY
BOUT DON'T YOU WORRY 'BOUT A THING
FOR I'M SURE THERE WILL BE
ALWAYS A GOOD NAVY
PROTECTING THE LAND AND SEA


IN THE NAVY
YES, YOU CAN SAIL THE SEVEN SEAS
IN THE NAVY
YES, YOU CAN PUT YOUR MIND AT EASE
IN THE NAVY
COME ON NOW, PEOPLE, MAKE A STAND
IN THE NAVY, IN THE NAVY
CAN'T YOU SEE WE NEED A HAND
IN THE NAVY
COME ON, PROTECT THE MOTHERLAND
IN THE NAVY
COME ON AND JOIN YOUR FELLOW MAN
IN THE NAVY
COME ON PEOPLE, AND MAKE A STAND
IN THE NAVY, IN THE NAVY, IN THE NAVY (IN THE NAVY)


THEY WANT YOU, THEY WANT YOU
THEY WANT YOU AS A NEW RECRUIT


WHO ME?


THEY WANT YOU, THEY WANT YOU
THEY WANT YOU AS A NEW RECRUIT


BUT, BUT BUT I'M AFRAID OF WATER.
HEY, HEY LOOK
MAN, I GET SEASICK EVEN WATCHIN' IT ON TV!


THEY WANT YOU, THEY WANT YOU IN THE NAVY


OH MY GOODNESS.
WHAT AM I GONNA DO IN A SUBMARINE?


THEY WANT YOU, THEY WANT YOU IN THE NAVY



основная прога
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using LibCrypto;
using System.IO;
 
namespace testproject
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Имя текстового файла\n");
            string input = Console.ReadLine();
            const string V = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";//строка алфавита
            const string Z = "./,\' 1234567890#!?$%^&*(){}[];:=-";
            char[] v = V.ToCharArray();
                            Console.WriteLine("Введите ключевое слово");
                string key = Console.ReadLine();
                char[] kl = key.ToCharArray();
            try
            {
                FileStream f1 = new FileStream(input, FileMode.Open);
                StreamReader fin = new StreamReader(f1);
                FileStream f2 = new FileStream("temp.txt", FileMode.Create);
                StreamWriter fout = new StreamWriter(f2);
                string s;
                for (int i = 0; i < kl.Length; i++)
                    if (kl[i] != ' ')
                        if (V.IndexOf(kl[i]) == -1) //то есть нет такой буквы
                        {
                            Console.WriteLine("Error\n");
                            Console.ReadKey();
                            return;
                        }
                while ((s = fin.ReadLine()) != null)
                {
                    Console.WriteLine(s);
                    char[] a = s.ToCharArray();
                    for (int i = 0; i < a.Length; i++)
                        if (Z.IndexOf(a[i]) == -1)
                            if (V.IndexOf(a[i]) == -1) //то есть нет такой буквы
                            {
                                Console.WriteLine("Error\n");
                                f2.Close();
                                f1.Close();
                                Console.ReadKey();
                                return;
                            }
                    char[] res = crypt.Crypt(a, v, kl);//зашифрованная
                    for (int i = 0; i < res.Length; i++)
                        Console.Write(res[i]);
                    Console.WriteLine();
                    fout.WriteLine(res);
                }
                f1.Close();
                f2.Close();
                File.Delete(input);
                File.Move("temp.txt", input);
            }
            catch (FileNotFoundException exc)
            {
                Console.WriteLine("No File Found!\n");
            }
            Console.WriteLine("Файл зашифрован. Желаете его расшифровать?(введите символ)");
            if (Console.ReadLine() == "")
                return;
            FileStream f3 = new FileStream(input, FileMode.Open);
            StreamReader fdelta = new StreamReader(f3);
            FileStream f4=new FileStream("temp.txt",FileMode.Create);
            StreamWriter fgamma=new StreamWriter(f4);
            string x;
            while ((x = fdelta.ReadLine()) != null)
            {
                char[] a = x.ToCharArray();
                char[] res = encrypt.Ecrypt(a, kl, v);
                fgamma.WriteLine(res);
            }
            f3.Close();
            f4.Close();
            File.Delete(input);
            File.Move("temp.txt", input);
            Console.ReadKey();
        }
    }
}
библиотека
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace LibCrypto
{
    //класс encrypt посвящен дешифровки с известным ключевым словом
    public class crypt
    {
        protected static void GetIndex(char[] array, char x, out int index)
        {
            //вообще исход из того что элемент в любом случае есть
            index = 0;
            for (int i = 0; i < array.Length; i++)
                if (array[i] == x)
                { index = i; break; }
        }
        public static char[] Crypt(char[] a, char[] var, char[] key)//закодирование
        {
            //получает параметр строки - строку исходную,константную строку,ключ-строку
            char[] alphabet = new char[var.Length];
            for (int i = 0; i < var.Length; i++)
                alphabet[i] = var[i]; //переносим все элементы из одного массива в другой
            //теперь имеем алфавит
            //------получение строки ключа----------------------------//
            char[] sk = new char[a.Length];//должно быть keykeykey...
            int k = 0;
            for (int i = 0; i < a.Length; i++)
            {
                if (k >= key.Length)
                    k = 0;
                sk[i] = key[k];
                k++;
            }
            //строка длины оригинальной с элементами ключа
 
            //----блок конкретной шифровки-----//
            const string Z = "./,\' 1234567890#!?$%^&*(){}[];:=-";
            char[] finalstring = new char[a.Length];
            int idex1, idex2 = 0;
            for (int i = 0; i < a.Length; i++)
                if (Z.IndexOf(a[i]) == -1)
                {
                    GetIndex(alphabet, a[i], out idex1);//индекс буквы из первоначальной строки
                    GetIndex(alphabet, sk[i], out idex2);//индекс буквы из ключенной строки
                    finalstring[i] = alphabet[(idex1 + idex2) % 26];//получаем закодированную
                }
                else finalstring[i] = a[i];
            //по идее зашифрованная строка - это finalstring, поэтому
            return finalstring;
        }
 
    }
    public class encrypt:crypt
    {
        public static char[] Ecrypt(char[] iz, char[] k, char[] var)
        {
            char[] alphabet = new char[var.Length];
            for (int i = 0; i < var.Length; i++)
                alphabet[i] = var[i];
            //получение строки ключа
            char[] st = new char[iz.Length];
            int t = 0;
            for (int i = 0; i < iz.Length; i++)
            {
                if (t >= k.Length)
                    t = 0;
                st[i] = k[t];
                t++;
            }
            //-----------------------------//
            const string Z = "./,\' 1234567890#!?$%^&*(){}[];:=-";
            char[] final = new char[iz.Length];
            int idex1 = 0, idex2 = 0;
            for (int i = 0; i < iz.Length; i++)
                if (Z.IndexOf(iz[i]) == -1)
                {
                    GetIndex(alphabet, iz[i], out idex1);
                    GetIndex(alphabet, st[i], out idex2);
                    int check = idex1 - idex2;
                    if (check < 0) check += 26;
                    final[i] = alphabet[check];
                }
                else final[i] = iz[i];
            return final;
        }
    }
}
причем кол-во строк которые остаются в файле(ну то есть те что были записаны) больше не уменьшаются в количестве.

Добавлено через 11 часов 0 минут
ОЙ!промазал разделом.

Не по теме:

только сейчас заметил

0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.09.2011, 13:46
Ответы с готовыми решениями:

Класс "Автомобиль". Создать метод, сохраняющий всю информацию в отдельный текстовый файл
using System; using System.IO; namespace Работа_с_объектами.лабораторная_работа__2 { class Program { static...

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

Удалить всю информацию после работы
Есть софт, где при нажатии на кнопку СТАРТ он исполняет код, а при нажатии на кнопку стоп он прекращает. Но после этого, если нажать...

5
774 / 554 / 80
Регистрация: 03.07.2011
Сообщений: 1,020
04.09.2011, 17:17
Думаю имеет смысл попытаться локализовать проблему ,а то уж в довольно объемный код надо вникать
0
ЧакЭ одобряЭ
 Аватар для Artishok
285 / 284 / 86
Регистрация: 27.12.2009
Сообщений: 1,767
04.09.2011, 17:37  [ТС]
библиотека добавлена просто для компиляции. она работает нормально.
проблема в главной программе. просто суть в том что на консоль выводит все строки. а в файл записывает не все.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
while ((s = fin.ReadLine()) != null)
                {
                    Console.WriteLine(s);
                    char[] a = s.ToCharArray();
                    for (int i = 0; i < a.Length; i++)
                        if (Z.IndexOf(a[i]) == -1)
                            if (V.IndexOf(a[i]) == -1) //то есть нет такой буквы
                            {
                                Console.WriteLine("Error\n");
                                f2.Close();
                                f1.Close();
                                Console.ReadKey();
                                return;
                            }
                    char[] res = crypt.Crypt(a, v, kl);//зашифрованная
                    for (int i = 0; i < res.Length; i++)
                        Console.Write(res[i]);
                    Console.WriteLine();
                    fout.WriteLine(res);
                }
0
 Аватар для atomohod
20 / 20 / 3
Регистрация: 01.04.2010
Сообщений: 57
04.09.2011, 18:15
StreamReader закрывай а не FileStream
1
ЧакЭ одобряЭ
 Аватар для Artishok
285 / 284 / 86
Регистрация: 27.12.2009
Сообщений: 1,767
04.09.2011, 18:34  [ТС]
Цитата Сообщение от atomohod Посмотреть сообщение
StreamReader закрывай а не FileStream
заработало.

а почему это влияет?ведь закрытие происходит после цикла записи
0
 Аватар для atomohod
20 / 20 / 3
Регистрация: 01.04.2010
Сообщений: 57
04.09.2011, 19:15
Честно, не могу точно сказать - это как-то связано с освобождением ресурсов винды.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.09.2011, 19:15
Помогаю со студенческими работами здесь

Вывести всю информацию о самом дешевом программном продукте
Дан массив данных, в котором хранятся данные о программных продуктах: наименование, фирма-изготовитель, объем (Мбайт), количество на...

Написать программу, которая в файл g записывает четные числа, а файл h - нечетные
В файле f записаны целые числа. Написать программу, которая в файл g записывает четные числа, а файл h - нечетные.

Написать программу, которая в файл g записывает положительные числа, а файл h - отрицательные.
В файле f записаны целые числа. Написать программу, которая в файл g записывает положительные числа, а файл h - отрицательные.

С помощью Reflection отобразить на Console всю информацию класса SystemInformation
с помощью reflection отобразит на Console всю информацию класса Sistem Information

ID3v1 теги в mp3 файлах, получить всю информацию о треке
Hi! Вот решил реализовать &quot;вытаскивание&quot; технической информации из mp3 файла. public class MusicID3Tag класс для музыки { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru