Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.08.20;
Скачать: [xml.tar.bz2];

Вниз

замена символов в файле пропуском   Найти похожие ветки 

 
AHoja   (2006-07-27 19:22) [0]

Здарова, как можно заменить определенный символ в файле пустым местом?


 
@!!ex ©   (2006-07-27 19:27) [1]

Что такое "Пустое место?"
Вырезать кусочек винчестера? Тогда там будет пусто место... Вакум....


 
AHoja   (2006-07-27 19:37) [2]

пример:

testing

заменить на:

tes ing


 
@!!ex ©   (2006-07-27 19:40) [3]

Так и надо говорить заменить пробелом. или #0.
Функция берет строку S и заменяет все символы равные C на пробелы, после чего возвращает преобразованную строку.
Как это связать с файлом, знаешь?

Function ChangeString(S:String; C:Char):string;
var
index:integer;
begin
Result:="";
for index:=1 to Length(S) do
if S[index]=C then
  Result:=Result+#32
else
  Result:=Result+S[index];
end;


 
Джо ©   (2006-07-27 19:42) [4]

Самое простое, но далеко не оптимальное:

var
 Lst: TStrings;
begin
 Lst := TStringList.Create;
 try
   Lst.LoadFromFile("filename");
   StringReplace (Lst.Text,"testing","tes ing",[rfReplaceAll]);
   Lst.SaveToFile("filename");
 finally
   Lst.Free;
 end;
end;


 
@!!ex ©   (2006-07-27 19:43) [5]

можно еще через while, pos, copy, но думаю будет медленнее.


 
@!!ex ©   (2006-07-27 19:48) [6]

Вот. Для любых файлов. Для текстовых, для бинарных, пофигу.

Procedure ChangeFile(InPut_FileName,OutPut_FileName:string; OldChar, NewChar:char);
var
input,output:file of char;
c:char;
begin
AssignFile(input,InPut_FileName);
Reset(input);
AssignFile(output,OutPut_FileName);
Rewrite(output);
repeat
 read(input,C);
 if c=OldChar then
  Write(output,newchar)
 else
  Write(output,c);
until Eof(input);
CloseFile(input);
CloseFile(output);
end;


 
Джо ©   (2006-07-27 19:49) [7]

> Для текстовых, для бинарных, пофигу.

Нет, это только для file of char.


 
@!!ex ©   (2006-07-27 19:52) [8]

Удалено модератором


 
Джо ©   (2006-07-27 19:54) [9]

Удалено модератором


 
@!!ex ©   (2006-07-27 19:56) [10]

Джо ©   (27.07.06 19:54) [9]

Хорошо. Тока жестко.
Ладно, извени. Надо мной сегодня тоже ржали... :)

Я объясняю.
Дело в том, что в данном случае я работаю с файлом как с файлом символов.
Согласись, с любым файлом так можно работать.
И если ты откроешь бинарник, то в нем все символы честно заменяться, и если текстовый откроешь - тоже заменяться.


 
Fay ©   (2006-07-27 20:21) [11]

2 @!!ex ©   (27.07.06 19:56) [10]
Какой размер, по-твоему, имеет Char?

> извени
Величим и магука


 
@!!ex ©   (2006-07-27 20:52) [12]

>>Какой размер, по-твоему, имеет Char
По моему он имеет размер 1 байт.
От -127 до 128, если мне конечно память не изменяет... ;)


 
Юрий Зотов ©   (2006-07-27 20:57) [13]

> @!!ex ©   (27.07.06 19:48) [6]

Заменить-то она заменит, только уже в другом файле и не в соответствии с [2].


 
@!!ex ©   (2006-07-27 20:57) [14]

Удалено модератором


 
@!!ex ©   (2006-07-27 21:00) [15]

>>Заменить-то она заменит, только уже в другом файле и не в соответствии с [2].

Другой файл решаеться на раз. Удалять первый, переименовывать....
Вроде так везде обнавление файлов делается.
Сначала создается временный файл, после чего старый удаляеться, временный переименовывается.

А вот несоответствие с условием - это да.....
Но автор же не сказал по какому алгоритму символы заменять.
Ему для конкретно его примера решение дал Джо.
Я постарался дать относительно универсальный пример.
Который заменяет все указанные символы на новые.


 
AHoja   (2006-07-27 22:49) [16]

Всем спасибо за помощь



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.08.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.04 c
4-1145936912
Бабайка
2006-04-25 07:48
2006.08.20
Защита программы: как запустить приложение из памяти?


15-1153167812
Loginov Dmitry
2006-07-18 00:23
2006.08.20
Прошу заценить новую статью


15-1153863014
Footballer
2006-07-26 01:30
2006.08.20
INSTALLER


15-1153345052
Alert2006
2006-07-20 01:37
2006.08.20
Нужен чат


11-1131365399
DmiSb
2005-11-07 15:09
2006.08.20
Еще раз про немодальную форму из DLL





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский