есть файл "bd.txt"
в него пишутся данные в формате:
ххх#yyy#zzz
ххх#yyy#zzz
# это разделитель
данные ххх - принемают только два значения, либо 1 либо 2, в первоначальном
виде все ххх = 1
Мне необходимо при чтении некоторые ххх заменить на 2
Как мне это реализоать. У меня есть несколько идей, но
реализация их мне видется достаточно сложными путями.
Может подскажите какое нибудь простое решение?
1. Axiles - 13 Января, 2010 - 10:39:54 - перейти к сообщению
2. EuGen - 13 Января, 2010 - 10:42:25 - перейти к сообщению
Если файл небольшой, то можно использовать http://php.su/functions/?fgetcsv - просто и понятно. В цикле обработаете данные, запишете в новый файл (или куда там требуется).
Если большой - читайте построчно: http://php.su/functions/?fgets
Если большой - читайте построчно: http://php.su/functions/?fgets
3. JustUserR - 13 Января, 2010 - 12:15:44 - перейти к сообщению
Axiles Только не забывайте данные кодировать чтобы в них не встретился разделитель и не испортил всю вашу базу
4. Axiles - 27 Января, 2010 - 06:43:54 - перейти к сообщению
Я наверно не совсем точно сформулировал вопрос. Мне надо чтобы скрипт некоторые ххх заменял на 2, тоесть перезаписывал. Не писал в новый файл, а именно в этом файле, именно в этой строке перезаписал.
Вот.
Вот.
5. valenok - 27 Января, 2010 - 09:18:20 - перейти к сообщению
Читаете файл, меняете данные, записываете в файл.
Попробуйте, и если не получится, напишите что именно не получилось и почему не получилось по Вашему мнению, а мы поможем.
Попробуйте, и если не получится, напишите что именно не получилось и почему не получилось по Вашему мнению, а мы поможем.
6. JustUserR - 27 Января, 2010 - 12:20:28 - перейти к сообщению
Axiles пишет:
Для больший файлов бывает быстрее и удобнее создать новый файл и потом его переименовать и удалить старый (Кстати так действует механизм работы с файлами в Perl) В принципе можете и перезаписывать построчно но тогда используйте fseek для навигации по файлуНе писал в новый файл, а именно в этом файле, именно в этой строке перезаписал
А еще лучше воспользоваться БД или XML-файлом для которых уже есть множество обработчиков для решения в том числе и вашей задачи
7. Axiles - 01 Февраля, 2010 - 12:09:33 - перейти к сообщению
valenok пишет:
Попробуйте, и если не получится, напишите что именно не получилось и почему не получилось по Вашему мнению, а мы поможем.
вот код
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- $idd = $HTTP_POST_VARS ['id'];
- $x=0;
- while ($x==0)
- {
- if ($idd==$datetime)
- {
- $admk="ok";
- $save2 = "$admk###$kl###$datetime###$text \r\n";
- $x = 1;
- }
- else
- if (!$save2)
- {
- $x = 1;
- }
- }
еси токрыть файл "bd.txt", 'r+' то пишет в начало, а ест 'а+' то в конец а мне надо:
CODE (html):
скопировать код в буфер обмена
скопировать код в буфер обмена
- ok###n###09.01.2010-18:13:17###текст
- ok###r###09.01.2010-18:15:36###текст
- ok###a###09.01.2010-18:16:46###текст
- ok###n###12.01.2010-11:11:16###текст
- ok###r###12.01.2010-11:43:59###текст
- ok###a###12.01.2010-14:16:33###текст
- ok###a###13.01.2010-09:54:34###текст
- no###n###13.01.2010-11:06:08###текст
- ok###a###13.01.2010-11:06:15###текст
- no###r###13.01.2010-11:06:20###текст
заменить "no" на "ok" оставив хронологический порядок