Главная страница
    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
3-98021
BlackTiger
2002-09-10 20:13
2002.09.30
ADO vs BDE vs


14-98338
?
2002-09-05 22:42
2002.09.30
IP


1-98068
Лана Розанова
2002-09-19 08:14
2002.09.30
Handle


14-98265
Malder
2002-08-29 17:53
2002.09.30
Какой компьютер быстрее работает


3-97987
MeryF
2002-09-09 16:33
2002.09.30
Вопрос по работе с DBGrid





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