Форум: "Начинающим";
Текущий архив: 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.043 c