запись в текстовый файл
-
- Активный участник
- Сообщения: 128
- Зарегистрирован: 07 окт 2012, 16:25
- Репутация: 20
- Откуда: Москва
запись в текстовый файл
можно ли в мапбэйсике изменить в текстовом файле определенную строку? (пятую например).
Сейчас, если нужно такое провернуть, то приходится копировать все строки в массив, изменять одну строку в полученном массиве и обратно полностью этот массив записывать в файл. Но сейчас стала задача изменить одну строку в большом файле. Есть ли способ для этой задачи в мапбэйсике более оптимальный, чем мой?
Сейчас, если нужно такое провернуть, то приходится копировать все строки в массив, изменять одну строку в полученном массиве и обратно полностью этот массив записывать в файл. Но сейчас стала задача изменить одну строку в большом файле. Есть ли способ для этой задачи в мапбэйсике более оптимальный, чем мой?
Последний раз редактировалось sysrepos 15 ноя 2013, 20:15, всего редактировалось 1 раз.
- ginpetr
- Завсегдатай
- Сообщения: 385
- Зарегистрирован: 21 июн 2011, 12:07
- Репутация: 140
- Откуда: Орск
- Контактная информация:
Re: запись в текстовый файл
Когда передо мной стояла такая задача, я тоже ничего не нашел. Я кажется читал по строке из одного файла и записывал в другой.
[ Сообщение с мобильного устройства ]
[ Сообщение с мобильного устройства ]
-
- Гуру
- Сообщения: 5355
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1021
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: запись в текстовый файл
Такое в принципе, с файлами, не возможно. Затем и придумали РБД
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 792
- Ваше звание: званий не имею
- Откуда: Москва
Re: запись в текстовый файл
А вам нужно именно на чистом мапбэйсике это сделать? А то можно было бы в коде вызвать какую-нибудь консольную утилиту, которая бы заменила строку (чисто предположение).
Редактор материалов, модератор форума
-
- Активный участник
- Сообщения: 128
- Зарегистрирован: 07 окт 2012, 16:25
- Репутация: 20
- Откуда: Москва
Re: запись в текстовый файл
ну вообще да, я пока только на мапбэйсике пишу.
а в других языках это возможно или нет?
а в других языках это возможно или нет?
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 792
- Ваше звание: званий не имею
- Откуда: Москва
Re: запись в текстовый файл
Во всех популярных скриптовых языках (Python, Perl, PHP и т.п.), думаю, возможно. Или, как вариант, можно исп-ть спец. утилиты типа <sed> и <awk>.
Редактор материалов, модератор форума
-
- Активный участник
- Сообщения: 128
- Зарегистрирован: 07 окт 2012, 16:25
- Репутация: 20
- Откуда: Москва
Re: запись в текстовый файл
а в C# так можно? я его сейчас в как раз изучаю
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 792
- Ваше звание: званий не имею
- Откуда: Москва
Re: запись в текстовый файл
Редактор материалов, модератор форума
-
- Гуру
- Сообщения: 5355
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1021
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: запись в текстовый файл
Всё равно - всё через память...
string str = File.ReadAllText("test.txt");
str = str.Replace("some text","some other text");
File.WriteAllText("test.txt", str);
-
- Активный участник
- Сообщения: 161
- Зарегистрирован: 17 янв 2012, 18:51
- Репутация: 74
Re: запись в текстовый файл
Такое возможно если все записи файла имеют одинаковую длину. Тогда можно открыть файл в режиме RANDOM и обращаться к конкретной записи по ее номеру.
- ginpetr
- Завсегдатай
- Сообщения: 385
- Зарегистрирован: 21 июн 2011, 12:07
- Репутация: 140
- Откуда: Орск
- Контактная информация:
Re: запись в текстовый файл
у меня миф-файлы переписываются как я писал выше, при это происходит одно пересохранение и два удаления с экспортом и импортом между делом(меняю проекции таблиц) и так для нескольких таблиц... весь прцесс занимает секунды, ну десятки секунд, такое время можно и подождать. так стоит ли оптимизировать?
[ Сообщение с мобильного устройства ]
[ Сообщение с мобильного устройства ]
-
- Гуру
- Сообщения: 5355
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1021
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: запись в текстовый файл
Если размер файл > нескольких сотен мегабайт - могут возникнуть сложности...
-
- Гуру
- Сообщения: 4231
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: -344969098
- Откуда: Париж
Re: запись в текстовый файл
Если бы автор вопроса немного отошел назад и рассказал нам зачем ему из Mapinfo исправлять большой файл, на сколько я понимаю в этот момент Mapinfo больше ничего не делает, то и советы были бы немного конкретней. Например:
записать этот файл в MID с MIF = "NONE" и исправить любцю заранее выбранную строку средствами самой Mapinfo,
и т.п.
записать этот файл в MID с MIF = "NONE" и исправить любцю заранее выбранную строку средствами самой Mapinfo,
и т.п.
-
- Активный участник
- Сообщения: 128
- Зарегистрирован: 07 окт 2012, 16:25
- Репутация: 20
- Откуда: Москва
Re: запись в текстовый файл
нужно в большом файле миф исправить одну строчку (название проекции)
- dab
- Гуру
- Сообщения: 671
- Зарегистрирован: 16 дек 2011, 20:02
- Репутация: 170
- Ваше звание: Гуру
- Откуда: Москва
- Контактная информация:
Re: запись в текстовый файл
Проекция <=> План-схема?sysrepos писал(а):нужно в большом файле миф исправить одну строчку (название проекции)
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 11 гостей