Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.30;
Скачать: CL | DM;

Вниз

WideString   Найти похожие ветки 

 
Алексей Ким ©   (2002-09-17 15:22) [0]

Как можно сделать ф-цию Pos с WideString?
Я может немного торможу но сам не могу
придумать(для работы с разными языками)


 
REA   (2002-09-17 15:28) [1]

1)
The WideString type represents a dynamically allocated string of 16-bit Unicode characters. In most respects it is similar to AnsiString. On Win32, WideString is compatible with the COM BSTR type

2) function AnsiPos(const Substr, S: string): Integer;
Note: This function supports multi-byte character sets (MBCS).

Вроде должно работать.


 
Алексей Ким ©   (2002-09-17 17:20) [2]

2REA сенкс за ф-цию думаю я чтото напортачил...

function ReplText ( Text, ToReplace, ReplaceTo : WideString ) :WideString;
var CharPlace : integer;
begin
while AnsiPos ( ToReplace, Text) > 0 do
begin
Application.ProcessMessages;
CharPlace := AnsiPos ( ToReplace, Text );
Delete ( Text, CharPlace, Length ( ToReplace ) );
Insert ( ReplaceTo, Text, CharPlace);
end;
Result := Text;
trim ( Text );
end;

function ReplaceInFile ( FileName, ToReplace, ReplaceTo: String ): Boolean;
var f: TFileStream;
a: WideChar;
RepText: WideString;
i: Integer;
begin
if not FileExists ( FileName ) then
begin
Result := False;
Exit;
end;

f := TFileStream.Create ( FileName, $0000 );
f.Position := 0;
while f.Position < f.Size do
begin
Application.ProcessMessages;
f.Read ( a, 1 );
RepText := RepText + a;
end;
f.Free;

RepText := ReplText ( RepText, ToReplace, ReplaceTo );
Application.ProcessMessages;

f := TFileStream.Create ( FileName, $0001);
f.Size := 0;
f.Size := Length(RepText);
f.Position := 0;
for i := 1 to Length ( RepText ) do
begin
f.Write ( RepText[i], 1 );
Application.ProcessMessages;
end;
f.Free;

Result := True;
{ TODO 5 -oCore -cCore proccess : Replace procedure }
end;

вот эта ф-ция должна заменять в файле, имя файла проверил и RepText захватывает файл, но ничего не заменяется ??? Может
кто-то подскажет?


 
REA   (2002-09-17 17:27) [3]

А это отменили?

function AnsiReplaceStr(const AText, AFromText, AToText: string): string;


 
Алексей Ким ©   (2002-09-17 19:57) [4]

<meta name="KeyWords" content="Eioi?iaoeiiiua oaoiieiaee,DELPHI, o?iee, eiiiiiaiou, aacu aaiiuo, io?aou, SQL ">

Такое вот получается из русского текста
Кажется из-за того что Result: string; а не widestring



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

Текущий архив: 2002.09.30;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.017 c
3-97939
Ifrit
2002-09-06 13:10
2002.09.30
Народ!!!! Помогите пожалуйста!!! Есть проблема: как из RichMemo з


14-98270
AL2002
2002-09-02 17:28
2002.09.30
Есть какие-то тосты для программеров?


3-98023
Vats
2002-09-11 10:58
2002.09.30
Как быстро обновить данные в таблице ADO со статическим курсором


14-98292
Елена
2002-09-04 08:44
2002.09.30
Количество и качество


6-98243
zarem
2002-07-24 22:27
2002.09.30
Получить список IP адрессов в локальной сети.