Форматирование текста

Тема в разделе "WASM.PROJECTS", создана пользователем Blackbeam, 28 дек 2008.

  1. Blackbeam

    Blackbeam New Member

    Публикаций:
    0
    Регистрация:
    28 дек 2008
    Сообщения:
    960
    ( :dntknw:( пароли все посеял..., придётся начинать жить заново)

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

    Добавил туда полезную весчь - удаление последовательности 0Ah, 0Dh из середины предложений, может кому понадобится ...

    Пока только для обычных текстов, если в файле есть код ..получится бяка...

    только не смейтесь пожалста, мой стиль програмирования - "ёжик в тумане":
    Код (Text):
    1.                      .elseif wParam==IDM_FORMAT
    2.  invoke CreateFile,
    3.  ADDR FileName,
    4.  GENERIC_READ or GENERIC_WRITE,
    5.  FILE_SHARE_READ or FILE_SHARE_WRITE,
    6.  NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL
    7.  mov hFile,eax
    8.  
    9.  invoke GlobalAlloc,GMEM_MOVEABLE or GMEM_ZEROINIT,MEMSIZE
    10.  mov  hMemory,eax
    11.  invoke GlobalLock,hMemory
    12.  mov  pMemory,eax
    13.  invoke ReadFile,hFile,pMemory,MEMSIZE-1,ADDR SizeReadWrite,NULL
    14.  
    15.  xor esi,esi
    16.  mov edi,pMemory
    17.  cmp byte ptr [edi],0
    18.  je L1
    19.                        .While al>0
    20. add edi,1
    21. mov al,byte ptr [edi]
    22.                       .if al>="A" && al<="Z"
    23. xor esi,esi
    24.                       .elseif al>="А"  &&  al<="Я"
    25. xor esi,esi    
    26.                       .elseif al=="." || al=="!" ||al=="?"
    27. mov esi,1
    28.               .elseif al==0Ah  && esi==0
    29. mov byte ptr [edi],20h
    30.               .elseif al==0Dh  && esi==0
    31. mov byte ptr [edi],20h
    32.  
    33.         .endif
    34.         .endw
    35. L1 :
    36.  
    37.  invoke SendMessage,hwndRichEdit,WM_SETTEXT,NULL,pMemory
    38.  invoke CloseHandle,hFile
    39.  invoke GlobalUnlock,pMemory
    40.  invoke GlobalFree,hMemory  
    41.  
    42. ; нужно не забыть сохранить файл...
    Несколько вопросов -
    Открываю файл и как определить, что он больше зарезервированного буфера?

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

    Не могу разобраться с выравниваением текста по краям страницы, как-то ещё нужно получить доступ к структуре EDITSTREAM...

    В редакторе все изменения сохраняются автоматически, 3 я кнопка - отмена изменений.
    Нумерация страниц декоративная, работает криво, надо разбираться...
    В файл пишется закладка - тоже автоматом...
     
  2. Johnikum

    Johnikum Member

    Публикаций:
    0
    Регистрация:
    6 июн 2003
    Сообщения:
    97
    >Добавил туда полезную весчь - удаление последовательности 0Ah, 0Dh из середины предложений, может кому понадобится ...
    >Хотелось бы иметь возможность править текст - удалять пробелы перед запятыми, если они есть, добавить после запятых если их нет и т.д....
    vim
     
  3. Blackbeam

    Blackbeam New Member

    Публикаций:
    0
    Регистрация:
    28 дек 2008
    Сообщения:
    960
    не понял, что означает сообщение уважаемого Johnikum, ну и ладно ...

    немного усовершенствовал : у Мошкова часто вместо "-" стоит "--" или длинные чёрточки, не знаю как называются, сделал ликвидацию этого безобразия

    можно править текст, содержащий код, поставил запрет на удаление переноса, если строка из латинских символов , к сожалению теперь в обычном тексте после ":" может получиться разрыв строки...

    Если делать ричэдиту хайд перед тем как, всё происходит намного быстрее - 500 кило форматируются около 0.1 сек ...( 2,4 гигагерца проц).

    Забыл сказать - максимальный размер файла может быть 1.999.999 байт

    С уважением, Blackbeam
     
  4. Johnikum

    Johnikum Member

    Публикаций:
    0
    Регистрация:
    6 июн 2003
    Сообщения:
    97
    редактор такой: http://www.vim.org/
    если знаешь регулярные выражения, то не составит труда все это осуществить. И много чего еще умеет. Рекомендую
     
  5. Blackbeam

    Blackbeam New Member

    Публикаций:
    0
    Регистрация:
    28 дек 2008
    Сообщения:
    960
    Исправил кое-какие баги ... теперь работает как часики, только быстрее ...

    отзывов нет, но мне собсно - по барабану

    Много читаю в текстовом формате, интересные темы форума и статьи тоже перевожу в текст...

    Переделать под любое разрешение экрана просто, настройку в программе делать лень , да и неудобно с ини-файлами... у меня монитор 410 мм х 258 мм, разрешение 1280 х 768, по некоторым причинам такое разрешение - единственно приемлемое.

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

    удачи
     
  6. Blackbeam

    Blackbeam New Member

    Публикаций:
    0
    Регистрация:
    28 дек 2008
    Сообщения:
    960
    исправил - вместо символов переноса нужно обязательно вставлять пробел

    http://blackbeam.narod.ru/

    народ тормозит, что с ним?