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

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.008 c
1-98129
dimanew
2002-09-20 12:18
2002.09.30
Какое св-во CheckListBox говроит что item


1-98098
Metotrone
2002-09-19 18:49
2002.09.30
Закрытие приложения


1-98180
liho26
2002-09-17 10:41
2002.09.30
Установка компонент в D-7


14-98279
Aleksey Pavlov
2002-09-02 13:36
2002.09.30
Фотографии со второй встречи Мастаков в Москве.


1-98146
dim-
2002-09-17 16:04
2002.09.30
Ole контейнер





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