profile
Размещено 5 лет назад по предмету Информатика от monetkayahoo

Помогите перевести с Pascal на c#

Само задание: Элементами типизированного файла являются отдельные слова. Изменить все его
элементы на другие слова (их значения вводятся с клавиатуры). Рассмотреть вариант: размер
существующего файла неизвестен.

uses crt;
var f:file of string;
s:string;
i,n:integer;
begin
clrscr;
assign(f,'filef');
rewrite(f);
writeln('Введите в файл словa, окончание ввода exit:');//не знем сколько слов
repeat
readln(s);
write(f,s);
until s='exit';
clrscr;
writeln('Исходный файл:');
reset(f);
n:=filesize(f);//определяем сколько слов в файле
while not eof(f) do//пока не конец файла, читаем
begin
read(f,s);
writeln(s);
end;
close(f);
rewrite(f);
writeln('Введите в файл ',n,' новых слов');
for i:=1 to n do
begin
readln(s);
write(f,s);
end;
clrscr;
writeln('Измененнный файл:');
reset(f);
for i:=0 to n-1 do
begin
read(f,s);
writeln(s);
end;
close(f);
readln
end.

  1. Ответ на вопрос
    Ответ на вопрос дан archery
    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Runtime.Serialization.Formatters.Binary;

    internal static class Program
    {
        private const string fileName_ = "words.dat";

        private static void Main()
        {
            try
            {
                Console.WriteLine("Ввод строк/слов, каждое с новой строки, окончание ввода - пустая строка");

                var words = new List<string>();
                string line;
                while ((line = Console.ReadLine()) != string.Empty)
                    words.Add(line);

                Serialize(fileName_, words.ToArray());
                words.Clear();

                Console.WriteLine("Вывод данных из файла");

                var words_from_file = (string[]) Deserialize(fileName_);
                for (var i = 0; i < words_from_file.Length; i++)
                    Console.WriteLine($"{i} = {words_from_file[i]}");
            }
            catch(Exception e)
            {
                Console.WriteLine(e);
            }
            finally
            {
                Console.ReadLine();
            }
        }

        private static void Serialize(string file, object o)
        {
            using (var fs = new FileStream(file, FileMode.Create, FileAccess.Write, FileShare.ReadWrite))
            {
                var bf = new BinaryFormatter();
                bf.Serialize(fs, o);
            }
        }

        private static object Deserialize(string file)
        {
            using (var fs = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.Read))
            {
                var bf = new BinaryFormatter();
                var o = bf.Deserialize(fs);
                return o;
            }
        }
    }


    Сериализация в бинарный файл.
    В вашей программе действия записи и вывода происходят 2 раза, если это действительно надо повторить, то добавьте все в цикл и повторяйте сколько надо/хочется


Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 6 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.