| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [Delphi] Вовод позиций символов в файле |
| Автор: tishaishii 18.4.2007, 11:04 | ||
| Помогите реализовать наиболее быстрый алгоритм вывода позиций символов в файле. Входная информация - произвольный файл. Выходная - тоже файл, в котором содержатся записи типа:
все символы 0-255, wide-char разбиваются символы ASCII (0-255). Позиция для записи конкретного символа = разница текущей и предыдущей позиций этого же символа. Определение позиции сивола должно происходить для каждого символа в отдельности, т.е. определить позиции первого сивола, удалить все такие "первые" символы из файла (можно логически), затем определить позиции следующего, удалить его. В итоге входнй файл окажется пустым. Задавайте вопросы. Благодарен за ответ. |
| Автор: Rodman 18.4.2007, 11:11 | ||
| tishaishii, c позициями не понятно... позиция в строке или лучше позиция в матрице?! Добавлено через 11 минут и 33 секунды
так? |
| Автор: tishaishii 18.4.2007, 16:32 | ||||||||||||||||||||||
| Таак. Попытаюсь обяснить понятнее. 1. Находим самый первый символ в файле, пишем символ. 2. Ищем следующий такой же символ, пишем позицию этого символа в файле в виде ASCII-символов (0-255). 3. Ищем следующий такой же символ, пишем ASCII-символы с кодом "предыдущая позиция минус текущая позиция". 4. И так далее. 5. Удаляем все такие же символы из файла. 6. Находим первый символ в файле....... начинаем с 1го шага, пока файл не станет пустым. Если позиция символа (разность текущей и предыдущей) больше 255, пишем позицию в виде нескольких символов (0-255). Добавлено через 12 минут и 6 секунд Вход:
{chr(x)} - имеется в виду символ с кодом x. 5 и 3 - позиция символа "a", начиная с нулевой позиции. Выход на следующем шаге:
Вход на следующем шаге:
Выход на следующем шаге:
Вход на следующем шаге:
Выход на следующем шаге:
Вход на следующем шаге:
Выход на следующем шаге:
Вход на следующем шаге:
Выход на следующем шаге:
Вход на следующем шаге:
Если разница текущей и предыдущей позиций символа больше 255, надо писать столько символов ASCII(0-255), сколько потребуется. |