Автор Тема: Строки  (Прочитано 3275 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн agressor

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 18
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Строки
« : 14 Февраля 2003, 18:42:23 »
Вот какой вопрос:
есть ли в пхп функции вроде удаления определенной строки из файла, замещения ее какой-нибудь другой строкой и т.д.
А то написал я скрипт форума (без MySQL), все бы ничего, но теперь хочу, чтобы с добавлением нового сообщения в тему она в списке всех тем поднималась на самый верх (как во всех приличных форумах:)), то есть удалялась из своего исходного места в файле и вписывалась в самый его конец...
Как это люди делают?

Оффлайн AliMamed

  • \\o/ ali akbar \\o/
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2409
  • +2/-0
  • 2
    • Просмотр профиля
    • http://alimamed.pp.ru
Строки
« Ответ #1 : 14 Февраля 2003, 18:48:28 »
читаешь файл в массив и циклом
ну, будем исповедоваться?

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Строки
« Ответ #2 : 14 Февраля 2003, 23:20:46 »
таких функций нет.
есть стандартные функции работы с файлом.
чтение, запись, блокировка.

Оффлайн agressor

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 18
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Строки
« Ответ #3 : 15 Февраля 2003, 08:22:03 »
тогда как сделать, чтобы в цикле он как бы стер строку, это что fwrite ($open, "")???

Оффлайн AliMamed

  • \\o/ ali akbar \\o/
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2409
  • +2/-0
  • 2
    • Просмотр профиля
    • http://alimamed.pp.ru
Строки
« Ответ #4 : 15 Февраля 2003, 11:40:36 »
читаешь файл в массив и циклом собираешь новый массив без строки, которую надо удалить.
новый массив записываешь в файл
ну, будем исповедоваться?

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Строки
« Ответ #5 : 15 Февраля 2003, 13:20:27 »
agressor
в файловой системе НЕТ такого понятия, как строка.
стандартными стредствами можно прочитать кусок файла.
Определенное количество байт по определенному смещению.
Записать можно тоже - только по определенному смещению.
удалить куок файла "из середины"- нельзя. можно только по определенному смещению и до конца.

поэтому тебе надо прочесть в массив.
с массивом сделать все необходимые операции.
собрать массив обратно в строку (implode)
открыть файл на запись.
записать строку.

понятно?

вообще я бы на твоем месте не парился с такими вещами без базы. запаришься.

а еще я бы на твоем месте, прежде, чем что-то писать, почитал бы сайты для начинающих.
чтобы уяснить себе именно эти азы работы с файлами.

Оффлайн agressor

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 18
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Строки
« Ответ #6 : 16 Февраля 2003, 17:19:21 »
Нет... Файловую систему я более или менее освоил, но думаю, если есть такие функции, как перевод курсора в конец, начало...
Ну да ладно... Я уже ровно шесть раз пробовал все переделывать, нихрена не работает или работает только наполовину:(
Не могли бы вы написать маленький примерчик: есть файл, в нем много строк, состоящих из значение:::номер, ну и вот, если номер совпадает с переменной $tema, то такая строка "удаляется" и вписыватся в конец файла... и все... вроде просто... но не получается, не судите строго...

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Строки
« Ответ #7 : 16 Февраля 2003, 20:41:06 »
такие функции есть.
но понятие "строка" существует только для тебя. и еще для текстового редактора.
с точки зрения файловой системы все симолы равноправны, и символ с кодом 13 ничем не лучше остальных.
ты можешь перемещать "курсор" по абсолютным позициям.
и при чем здесь строки, длину которых ты не знаешь?

Сказали тебе.
СЧИТЫВАЕШЬ ВЕСЬ ФАЙЛ.
производишь над переменной манипуляции.
записываешь файл целиком обратно.
Какие тут еще курсоры?

Хотя я предпочитаю не давать готовенькое, а чтобы человек давал код, и уже в нем указать на ошибки, но сейчас я насчет примера я могу тебе помочь.
Тут недавно один товарищ как раз похожим интересовался...

Остальные - тоже сходите. Это забавно ;-)
http://www.russian-traders.com/forum/forumdisplay.php3?forumid=11

Оффлайн agressor

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 18
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Строки
« Ответ #8 : 19 Февраля 2003, 19:17:21 »
Спасибо, все работает :)

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28