0 / 0 / 0
Регистрация: 24.04.2013
Сообщений: 32
|
||||||
1 | ||||||
как записать данные в файл txt24.04.2013, 22:32. Просмотров 4500. Ответов 27
Метки нет Все метки)
(
У меня есть текстовый файл, в нем 5 полей
к примеру |1|август|2013|22 сентября 2012|3 октября 2014| на форме нужно считать с dataPicker1 дату и записать ее на место 22 сентября 2012 с dataPicker2 дату и записать ее на место 3 октября 2014 Как здесь запись именно на место 4 и 5 поля? |||должны сохраниться, в них просто будет пусто
0
|
|
24.04.2013, 22:32 | |
Как записать данные из формы в .txt файл не используя FileSystemObject?
Записать данные в .txt файл |
|
53 / 53 / 5
Регистрация: 06.04.2013
Сообщений: 178
|
|
24.04.2013, 22:38 | 2 |
если я правильно понял то:
читаем весь файл в массив, и в нужной строке идем по маркерам "|" на нужную позицию (т е находим позицию 4, 5, 6 вхождения, удаляем (вхождение4-вхождение5-1), вставляем на место вхождения4 нужную строку, аналогично дальше), вносим изменения. сохраняем массив в тот же файл (перезаписываем файл вообщем). вот тут гляньте: [ Удаление строки из файла ]
0
|
0 / 0 / 0
Регистрация: 24.04.2013
Сообщений: 32
|
||||||
24.04.2013, 22:43 [ТС] | 3 | |||||
да, иду по тексту
0
|
53 / 53 / 5
Регистрация: 06.04.2013
Сообщений: 178
|
|||||||||||
25.04.2013, 00:01 | 4 | ||||||||||
не силен в C#, но вот у меня так получилось. если я все правильно понял:
Поправочка: строчка 25:
0
|
0 / 0 / 0
Регистрация: 24.04.2013
Сообщений: 32
|
|
25.04.2013, 16:31 [ТС] | 5 |
к сожалению не работает, файл не перезаписывает-изменения не вносятся(
0
|
53 / 53 / 5
Регистрация: 06.04.2013
Сообщений: 178
|
|
25.04.2013, 16:37 | 6 |
у меня все работало. странно.
файл D:\input.txt через пол часа еще раз пересмотрю
0
|
0 / 0 / 0
Регистрация: 24.04.2013
Сообщений: 32
|
|
25.04.2013, 17:04 [ТС] | 7 |
пишет Процесс не может получить доступ к файлу input.txt", так как этот файл используется другим процессом.
oops ,опечатка в первом сообщении перед первым символом|нет вот так 1|август|2013|22 сентября 2012|3 октября 2014| 2|август|2013|01 октября 2018 |3 октября 2014| 3|август|2013|22 сентября 2012|31 ноября 2028| Добавлено через 18 минут а в каком месте кода идет считывани инф-ии, что сегодня 25 апреля 2013 г?которое нужно вставить на место 22 сентября 2012
0
|
53 / 53 / 5
Регистрация: 06.04.2013
Сообщений: 178
|
|
25.04.2013, 17:38 | 8 |
т е формат должен быть такой?
в начале строки не нужен символ "|"? 1|август|2013|22 сентября 2012|3 октября 2014| 2|август|2013|01 октября 2018 |3 октября 2014| 3|август|2013|22 сентября 2012|31 ноября 2028| Split ом разбивается данные в массив, где каждый элемент это поле. поиск того, что нужно заменить происходит по указанию нужной строки и столбца. соотв вычисляем смещение (строка, столбец), заменяем, объедением и опять запихиваем в файл. что непонятного? у меня все работает, посмотри, может у тебя где-то в блокноте открыт этот текстовой файл, хз сейчас скину проект полностью
0
|
0 / 0 / 0
Регистрация: 24.04.2013
Сообщений: 32
|
|
25.04.2013, 17:44 [ТС] | 9 |
да-да, перед первым символом |не надо
просто 1|август|2013|22 сентября 2012|3 октября 2014| ошибки нет, забыла приписать.там др поток был открытый массив понятен, я имею ввиду где идет считывание не с блокнотовского файла, а dataPicker1 ?
0
|
53 / 53 / 5
Регистрация: 06.04.2013
Сообщений: 178
|
||||||
25.04.2013, 18:18 | 10 | |||||
OMG...
Как где идет считывание с dataTimePicker1? Да где угодно, когда тебе нужно поменять значения, тогда и считываем. Немного непонятно уже ничерта ) получаем дату: textBox1.Text=dateTimePicker1.Text; "25 квітня 2013 р." это имелось ввиду? или тебе нужно, скажем найти определенную дату и заменить ее датой из датаТаймПикера? т е заранее ты не знаешь ее нахождение (строка, столбец)? ----------------------------- обновленный код:
----------------------------- p.s. да, так к слову, если не указать D:\\ то файл input.txt будет в: папке проекта\bin\Debug (где собственно и сам exe.шник).
0
|
0 / 0 / 0
Регистрация: 24.04.2013
Сообщений: 32
|
|
25.04.2013, 18:54 [ТС] | 11 |
в debug он и находится, поэтому адрес не указываю
textBox1.Text=dateTimePicker1.Text; просо пыталась найти это у вас в коде найти определенную дату и заменить ее датой из датаТаймПикера,да как раз это и имелось ввиду) столбец то знаю-4й и 5й(если с нуля отсчет , то соответственно 3 и 4) строку не знаю, ищу по ...к примеру.там в какой строчке первое значение 3, там изменяю дату т е в строке 3|август|2013|22 сентября 2012|31 ноября 2028| меняю даты
0
|
53 / 53 / 5
Регистрация: 06.04.2013
Сообщений: 178
|
|
25.04.2013, 19:45 | 12 |
короче, я вот понял так:
-- есть 2 датаТаймпикера; -- есть файл с определенным форматом записей; -- есть некая строка fnd которую необходимо сначала найти в файле, затем заменить на значение из датаТаймПикер. -- записать изменения в файл -- совсем забыл -- длинна каждой записи (между ||) не нужно делать везде одинаковой, без разницы. вопросы: -- необходито ставить энтеры в конце каждой строки записи? т. е. что бы было вот так: -- зачем второй дататаймпикер? (dateTimePicker2)
0
|
0 / 0 / 0
Регистрация: 24.04.2013
Сообщений: 32
|
|
25.04.2013, 20:17 [ТС] | 13 |
2 дата пикера
файл, с записями 1|август|2013|22 сентября 2012|2 сентября 2012| 3|октябрь|2014|2 августа 2013|5 мая 2005| делаю, чтобы каждая строка была на отдельной строчке. Enter надо ну вот смотри, ввожу изменения в строку где первое значение 3 т е в строку 3|октябрь|2014|2 августа 2013|5 мая 2005| теперь о датапикерах , 1й нужен для того чтобы изменить первую дату-т е в нашем случае 2 августа 2013 2й датапикер соответственно заменяет вторую дату т е собой, вместо 5 мая 2005| т е если в обоих дата пикера будет выбрано число 25 апреля 2013, то в перезаписанном виде файл будет выглядеть так 1|август|2013|22 сентября 2012|2 сентября 2012| 3|октябрь|2014|25 апреля 2013|25 апреля 2013| т е нужно считать данные с входящего файла, reader,и открыть для записи writer -вот тут проблема- т к как перезаписать внеся изменения я не знаю(( длина -чихать,мне главное чтобы изменеия вносились) Добавлено через 7 минут т е меняем не строку, а только отдельные элементы в ней(3 первых поля 3|октябрь|2014| остаются без изменений )
0
|
53 / 53 / 5
Регистрация: 06.04.2013
Сообщений: 178
|
|||||||||||
25.04.2013, 20:48 | 14 | ||||||||||
такс, вроде понятно, меняет только 4 и 5 записи, остальное неизменно.
процедура меняет в массиве D соответствующие записи по указанному номеру строки nLine и номеру записи. все начинается с 1. номер строки не должен выходить за количество, которое уже есть в исходном файле. (т е файл уже должен содержать некое количество строк!) номер записи аналогично не должен выходить за 5.
вот так осн. часть кода, проект прикреплю снизу, что бы уже точно все запускалось ![]()
в нем же в дебаге файл input.txt
2
|
0 / 0 / 0
Регистрация: 24.04.2013
Сообщений: 32
|
|
25.04.2013, 21:11 [ТС] | 15 |
спасибо большое, это как раз то, что надо)
не подскажите как еще можно сделать так Безымянный.png т е второй пикер показывает на 3 дня больше при запуске, по моим предположениям нужно получить сегодняшнюю дату день .now и прибавить к ней 3, а вот затем .+3 нельзя, toString,Text и подобное пикер не видит( картинка долго открывается , суть в том что первый пикер показывает 25 апреля 2013 а второй 28 ареля 2013
0
|
53 / 53 / 5
Регистрация: 06.04.2013
Сообщений: 178
|
|||||||||||
25.04.2013, 22:17 | 16 | ||||||||||
о, вроде получилось
увеличиваем день на 3 (к текущей дате прибавляем 3 дня):
если так сделать, то прокатывает, но если +10 дней, то ошибка конечно:
2
|
0 / 0 / 0
Регистрация: 24.04.2013
Сообщений: 32
|
|
25.04.2013, 22:30 [ТС] | 17 |
на 3 мне вполне достаточно)спасибо еще раз)
0
|
0 / 0 / 1
Регистрация: 20.04.2013
Сообщений: 87
|
|
26.04.2013, 00:36 | 18 |
а как сделать,чтобы не для dataPicker а вводишь из текстбокса и заменяешь?
строка 1!Хирургия!15!4! нужно заменить значение 4
0
|
53 / 53 / 5
Регистрация: 06.04.2013
Сообщений: 178
|
|
26.04.2013, 01:14 | 19 |
поподробнее, что заменять и на что?
я так понял, есть строка 1!Хирургия!15!4!, т е разделенная "!", нужно заменить значение "4" на что? на сколько длинная исходная строка? то же находится в файле?
1
|
0 / 0 / 1
Регистрация: 20.04.2013
Сообщений: 87
|
|||||||||||
26.04.2013, 08:29 | 20 | ||||||||||
текстовый файл выглядит таким образом:
1!Хирургия!15!4! 2!Теропевтическое!20!4! 3!Неврология!10!2! 4!Кардиология!6!3! 5!Геникология!15!6! 6!Офтальмологическое!5!1! соответствуют num_otdel,name_otdel,kol_place,kol_pasient разделитель "!". класс выглядит вот так
мне нужно вводить число в textbox (соответствует количеству пациентов) и нажимая на кнопку "обновить" изменить значение в файле которое означает количество пациентов.
![]()
0
|
26.04.2013, 08:29 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь. Записать данные в файл txt Данные записать в файл F1.txt, затем прочитать оттуда, обрабатывались и записывались в бинарный файл F2.bin с проверкой Как записать в массив данные из *.TXT и и правильно рассортировать данные по ячейкам массива?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |