Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2015, 10:10   #1
Krasi
Форумчанин
 
Регистрация: 12.02.2010
Сообщений: 787
По умолчанию Как в C# прочитать то, что еще не прочтено в тексте?

У меня большой текстовый файл. С начала он маленький, конечно. Но затем туда блок за блоком записываются данные, если оставить программу на час, то будет куча информации.
Мне нужно еще и разделять данные, поэтому смотрите код, сейчас я пишу считывание так:
Код:
string IQdata = File.ReadAllText("C:/Users/engineer/Desktop/Step1_binFFT_v2/
LAST_Version_Workable_OFDM_TCP_Scrambler_FileReceiver/Bin_creator_4OFDM_TCP/Bin_creator/bin/Debug/IQ.txt");
IQdata = IQdata.Replace("Idata ", ""); IQdata = IQdata.Replace("Qdata ", "");
            string[] IQdatas = IQdata.Split(' ');
            double[] Idata = new double[(IQdatas.Length-1)/2];
            double[] Qdata = new double[(IQdatas.Length-1)/2];
А мне бы сделать так, чтобы при запуске программа считала первый массив в файле заданной длины, содержащий "Idata " и "Qdata ", затем, обработав его, не закрыла бы файл, а (я это делаю по таймеру) принялась бы за второй блок данных, потом за третий и тд. Если информация не приходит - нужно просто ждать ее. Как это проще сделать?

Последний раз редактировалось Stilet; 09.11.2015 в 10:22.
Krasi вне форума Ответить с цитированием
Старый 09.11.2015, 10:23   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Как это проще сделать?
Заменить файл базой данных конечно же )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.11.2015, 10:40   #3
Krasi
Форумчанин
 
Регистрация: 12.02.2010
Сообщений: 787
По умолчанию

Да можно, но мне вообще TCP нужен. Поэтому файл - это временно. А почему БД лучше? И как конкретно хотя бы читать по блоку из файла (n-символов)?
Krasi вне форума Ответить с цитированием
Старый 09.11.2015, 10:55   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
мне вообще TCP нужен.
Бессвязно излагать решил серьезно ты. Идею выносить родить прежде чем нужно падаван юный.
Цитата:
А почему БД лучше?
А потому что ты сам не понял чего хочешь.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.11.2015, 11:14   #5
Krasi
Форумчанин
 
Регистрация: 12.02.2010
Сообщений: 787
По умолчанию

У меня две программы: приемник и передатчик. Я хочу пока не заморачиваться с TCP и доделать сами алгоритмы программ, сделав любую простейшую связь между ними. Обе программы работают циклично, то есть нажал на старты, оставил их в покое, и в одной все генерируется, а в другой расшифровывается и принимается.
Хорошо, давайте с начала, может проще начать с циклической записи в файл?. Вот так я записываю данные:
Код:
Ip += fout[(i - n * n4) * 2].ToString() + " "; 
Qp += fout[(i - n * n4) * 2 + 1].ToString() + " ";
Io += "Idata " + Ip;
Qo += "Qdata " + Qp; 
Iout.Add(Io);
Qout.Add(Qo);
File.WriteAllText("IQ.txt", (Iout[itmr-1] + Qout[itmr-1]));
Здесь fout - просто double-число, в цикле получается много чисел.
itmr-1 - эта переменная и определяет количество блоков, которым суждено быть переданными. itmr, например, изменяется от 0 до 3, а затем снова обнуляется и все повторяется.
Мне нужно сделать не так, чтобы прошлый тест затирался, а новый выводился, а так, чтобы в файле все время через какой-то знак препинания (перенос строки, например) добавлялись все новые и новые блоки Iout[itmr-1] + Qout[itmr-1].

Последний раз редактировалось Krasi; 09.11.2015 в 11:16.
Krasi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что еще нужно написать? Avvakymova Помощь студентам 0 28.05.2011 00:50
gettime() или что-то еще...) Семен_Владимирович Помощь студентам 1 11.02.2011 16:44
Взаимодействие с виндой и еще кое-что Manitu Помощь студентам 5 25.03.2008 09:28
прочитать что выдало CMD.exe malevich Win Api 5 03.03.2008 21:35