Страница 1 из 2
запись в текстовый файл
Добавлено: 15 ноя 2013, 16:53
sysrepos
можно ли в мапбэйсике изменить в текстовом файле определенную строку? (пятую например).
Сейчас, если нужно такое провернуть, то приходится копировать все строки в массив, изменять одну строку в полученном массиве и обратно полностью этот массив записывать в файл. Но сейчас стала задача изменить одну строку в большом файле. Есть ли способ для этой задачи в мапбэйсике более оптимальный, чем мой?
Re: запись в текстовый файл
Добавлено: 15 ноя 2013, 20:13
ginpetr
Когда передо мной стояла такая задача, я тоже ничего не нашел. Я кажется читал по строке из одного файла и записывал в другой.
[ Сообщение с мобильного устройства ]
Re: запись в текстовый файл
Добавлено: 15 ноя 2013, 20:19
trir
Такое в принципе, с файлами, не возможно. Затем и придумали РБД
Re: запись в текстовый файл
Добавлено: 15 ноя 2013, 21:10
Александр Мурый
А вам нужно именно на чистом мапбэйсике это сделать? А то можно было бы в коде вызвать какую-нибудь консольную утилиту, которая бы заменила строку (чисто предположение).
Re: запись в текстовый файл
Добавлено: 15 ноя 2013, 21:13
sysrepos
ну вообще да, я пока только на мапбэйсике пишу.
а в других языках это возможно или нет?
Re: запись в текстовый файл
Добавлено: 15 ноя 2013, 21:19
Александр Мурый
Во всех популярных скриптовых языках (Python, Perl, PHP и т.п.), думаю, возможно. Или, как вариант, можно исп-ть спец. утилиты типа <sed> и <awk>.
Re: запись в текстовый файл
Добавлено: 15 ноя 2013, 21:22
sysrepos
а в C# так можно? я его сейчас в как раз изучаю
Re: запись в текстовый файл
Добавлено: 15 ноя 2013, 21:25
Александр Мурый
Re: запись в текстовый файл
Добавлено: 15 ноя 2013, 22:04
trir
Всё равно - всё через память...
string str = File.ReadAllText("test.txt");
str = str.Replace("some text","some other text");
File.WriteAllText("test.txt", str);
Re: запись в текстовый файл
Добавлено: 15 ноя 2013, 23:11
thegeo
Такое возможно если все записи файла имеют одинаковую длину. Тогда можно открыть файл в режиме RANDOM и обращаться к конкретной записи по ее номеру.
Re: запись в текстовый файл
Добавлено: 16 ноя 2013, 10:13
ginpetr
у меня миф-файлы переписываются как я писал выше, при это происходит одно пересохранение и два удаления с экспортом и импортом между делом(меняю проекции таблиц) и так для нескольких таблиц... весь прцесс занимает секунды, ну десятки секунд, такое время можно и подождать. так стоит ли оптимизировать?
[ Сообщение с мобильного устройства ]
Re: запись в текстовый файл
Добавлено: 16 ноя 2013, 10:27
trir
Если размер файл > нескольких сотен мегабайт - могут возникнуть сложности...
Re: запись в текстовый файл
Добавлено: 17 ноя 2013, 15:13
Boris
Если бы автор вопроса немного отошел назад и рассказал нам зачем ему из Mapinfo исправлять большой файл, на сколько я понимаю в этот момент Mapinfo больше ничего не делает, то и советы были бы немного конкретней. Например:
записать этот файл в MID с MIF = "NONE" и исправить любцю заранее выбранную строку средствами самой Mapinfo,
и т.п.
Re: запись в текстовый файл
Добавлено: 18 ноя 2013, 18:54
sysrepos
нужно в большом файле миф исправить одну строчку (название проекции)
Re: запись в текстовый файл
Добавлено: 18 ноя 2013, 19:01
dab
sysrepos писал(а):нужно в большом файле миф исправить одну строчку (название проекции)
Проекция <=> План-схема?