112 / 83 / 32
Регистрация: 10.08.2014
Сообщений: 420
|
||||||
1 | ||||||
Можно ли сначала прочесть файл, а потом открыть его в потоке12.10.2014, 02:18. Показов 1654. Ответов 8
Метки нет (Все метки)
Чувствую, что путаюсь в многочисленных классах файлов/потоков. Пробовал и так и этак - либо выдаст написанное мной общее исключение, либо сделает всё для двух строчек (одной итерации) и зависает. Строк в файле 12 - через одну идут строки с целыми числами, разделённые пробелами.
В коде, если не говорить огульно, мне не нравится, что у меня файл сначала открывается для считывания содержимого в массив строк, а потом открывается в потоке - может быть в этом ошибка.
0
|
12.10.2014, 02:18 | |
Ответы с готовыми решениями:
8
Как сначала описать класс а потом написать его реализацию Дан текстовый файл. В каждой его строке сначала идет текст, а потом - вещественное число. Создать два файла: файл, содер Можно ли открыть Мьютекс в другом потоке и освободить его ? Можно ли открыть .xnb, отредактировать его потом опять запихать? |
813 / 421 / 169
Регистрация: 08.02.2013
Сообщений: 711
|
|
12.10.2014, 02:28 | 3 |
baliar, а чем Вам не нравится способ прочесть все/записать?
0
|
112 / 83 / 32
Регистрация: 10.08.2014
Сообщений: 420
|
|
12.10.2014, 02:33 [ТС] | 4 |
Что-то вроде File.WriteAllLines(string path, IEnumerable<string> contents) ?
0
|
813 / 421 / 169
Регистрация: 08.02.2013
Сообщений: 711
|
||||||
12.10.2014, 02:44 | 5 | |||||
baliar, нет, Ваш метод - ReadAllLines итд. Если памяти много ест - лучше открыть на чтение и создать на запись временный файл. Одновременно читать по строкам и записывать. Потом File.Move.
У Вас, возможно ошибка в том, что
Добавлено через 8 минут Вообще, в таких случаях формирование строки лучше делать StringBuilder'ом, потому что s = s+ "..." создаст новую строку и в памяти будет висеть старое и новое значение. А еще лучше - записывать сразу в файл и нигде не хранить предыдущие значения.
1
|
813 / 421 / 169
Регистрация: 08.02.2013
Сообщений: 711
|
||||||
12.10.2014, 03:07 | 7 | |||||
Сообщение было отмечено baliar как решение
Решение
baliar, вот примерно так
1
|
112 / 83 / 32
Регистрация: 10.08.2014
Сообщений: 420
|
|
12.10.2014, 03:25 [ТС] | 8 |
Вроде бы работает - спасибо. Правда, на ночь уже не стану разбирать код. Завтра, наверное. Ещё раз благодарю.
...Вроде бы примерно то же самое, только совершенно другими методами - сам бы не написал, продолжал бы переставлять наиболее очевидные методы потоков и файлов.
0
|
112 / 83 / 32
Регистрация: 10.08.2014
Сообщений: 420
|
|
13.10.2014, 22:36 [ТС] | 9 |
Гм. Дабы не плодить темы с малозначащими названиями... А можно ли как-то разделить логику в описанном выше коде. Скажем нам нужно получать и добавлять в файл разные сигналы - без инкапсуляции выходит копирование кода в каждый новый класс. А если бы был, скажем, File Manager, можно было бы, наверное, как-то открыть поток в его конструкторе, а потом к этому объекту применить метод настроенного на определённый сигнал класса... У меня уже 3ий класс сигналов пошёл и в каждом копипаст с доработкой... Но если тема не очевидна, не заморачивайтесь - попробую сам что-нибудь придумать.
0
|
13.10.2014, 22:36 | |
13.10.2014, 22:36 | |
Помогаю со студенческими работами здесь
9
Как сначала открыть MyForm1, а потом MyForm? Во второй массив сначала переписать сначала положительные, потом 0, потом отрицательные Можно ли загрузить в облако текстовый файл и потом отображать его в приложении? Открыть и прочесть *.amf файл Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |