Главная страница
    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.049 c
11-1131533055
Ефременко Алексей
2005-11-09 13:44
2006.08.20
Модули, требующиеся для компиляции mirror.pas


2-1154552866
susergey
2006-08-03 01:07
2006.08.20
Абракадабра в TMemo


15-1153430033
QuickFinder
2006-07-21 01:13
2006.08.20
Игры на ZX-Spectrum: Back To Skool


15-1153735483
Nic
2006-07-24 14:04
2006.08.20
Помогите найти e-mail С. Орлика плиз!


2-1154067631
mega83
2006-07-28 10:20
2006.08.20
TStringGrid





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский