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

Вниз

Как удалить ссылку из RTF документа ?   Найти похожие ветки 

 
KygECHuK ©   (2006-05-05 14:34) [0]

Мне необходимо написать утилиту корая убирала ссылки из документов  формата  rtf.  Как это можно сделать ?


 
AlexanderMS ©   (2006-05-05 16:49) [1]

Попробуйте открыть RTF-файл, содежащего гиперссылку, в блокноте и посмотрите, как он оформляется, а также, как оформляется обычный текст. Сравните 2 варианта и сделайте выводы!


 
KygECHuK ©   (2006-05-05 17:04) [2]

Посмотрел. Сделала вывод что ине нужны более конкреьные рекомендации


 
AlexanderMS ©   (2006-05-05 17:24) [3]

Я не смотрел, но оформление текста с гиперссылкой должно отличаться от такового без гиперссылки. Затем, я думаю, можно через поиск замену.


 
KygECHuK ©   (2006-05-05 18:01) [4]

Да оно отличается и даже в нескольких местах и применение парсинга или замены текста слишком трудоёмко, я хочу найти болле простой способ, возможно какой-нибуть компонент или готовый алгоритм.


 
KygECHuK ©   (2006-05-11 15:17) [5]

Если кому интересно:


unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, Mask, ToolEdit, Gauges;

type
 TForm1 = class(TForm)
   Button1: TButton;
   ggProgress: TGauge;
   OpenDialog1: TOpenDialog;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;
const
 ld_HYPER_LINK = "HYPERLINK";
 ld_FULL_BEGIN = "{\field{\*\fldinst";
 ld_STR_BEGIN  = "}{\fldrslt";
 ld_FULL_END   = "}}}";
var
 Form1: TForm1;

implementation

{$R *.dfm}
uses
 xtools;

procedure TForm1.Button1Click(Sender: TObject);
var
 HyperSizeS   : integer;
 FullBeginS   : integer;
 StrBeginS    : integer;
 FullEndS     : integer;
 FullBegin    : Integer;
 StrBegin     : integer;
 FullEnd      : integer;
 i, K, j      : Integer;
 L            : Int64;
 FileStream   : TFileStream;
 BigStr       : String;
 BuffStr      : String;
 FileName     : String;

 ForDebug     : String;
begin
 HyperSizeS := length(ld_HYPER_LINK);
 FullBeginS := length(ld_FULL_BEGIN);
 StrBeginS  := length(ld_STR_BEGIN);
 FullEndS   := Length(ld_FULL_END);

 if not OpenDialog1.Execute then exit;
 if not FileExists(OpenDialog1.FileName)then exit;
 FileStream := TFileStream.Create(OpenDialog1.FileName, fmOpenReadWrite);
 try

   SetLength(BigStr, cardinal(FileStream.Size));
   FileStream.Read(pointer(Pchar(BigStr))^, FileStream.Size);
   ggProgress.Progress := 0;
   ggProgress.MaxValue := FileStream.Size - 1;
   for i := 1 to length(bigstr) do
   begin
     ggProgress.Progress := i;
     if copy(BigStr, i, HyperSizeS) = ld_HYPER_LINK then
     begin
       for k := i downto 1 do
       if copy(BigStr, k, FullBeginS) = ld_FULL_BEGIN then
       begin
         FullBegin := k;
         Break;
       end;
       for k := i to length(bigstr) do
       if copy(BigStr, k, StrBeginS) = ld_STR_BEGIN then
       begin
         StrBegin := k;
         Break;
       end;
       for j := k to length(bigstr) do
       if copy(BigStr, j, FullEndS) = ld_full_end then
       begin
         FullEnd := j;
         Break;
       end;
       BuffStr := "{" + copy(BigStr, StrBegin + 24, FullEnd - StrBegin - 24) + "}";
       Delete(BigStr, FullBegin, (FullEnd + 3) - FullBegin);
       Insert(BuffStr, BigStr, FullBegin);
     end;
   end;
   FileStream.Position := 0;
   FileStream.Write(pointer(Pchar(BigStr))^, length(bigStr));
 finally
   FileStream.Free;
 end;
end;

end.




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

Форум: "Начинающим";
Текущий архив: 2006.05.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.012 c
3-1143869964
Некто
2006-04-01 09:39
2006.05.28
ФИО или Ф, И и О?


4-1141123112
Axis_of_Evil
2006-02-28 13:38
2006.05.28
twm as AttachThreadInput


4-1141671032
spyrytus
2006-03-06 21:50
2006.05.28
HOOK на комбинацию клавиш


11-1127201931
BMouradov
2005-09-20 11:38
2006.05.28
KolTrayIcon


1-1145460535
rantorira
2006-04-19 19:28
2006.05.28
сохранение древовидной структуры данных в файл





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