Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Любой]заменить символ "=" в конце каждой строки, Помогите заменить символ 
:(
    Опции темы
Наташечка
Дата 11.4.2008, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 11.4.2008

Репутация: нет
Всего: нет



Мальчики помогите!

Нужно в текстовом документе заменить символ "=" в конце каждой строки, при этом не менять другие "=" в самом тексте.

Большое спасибо.
PM MAIL   Вверх
Наташечка
Дата 11.4.2008, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 11.4.2008

Репутация: нет
Всего: нет



Не нашла как поменять Заголовок, модератор смени.

...
сайт.com/ischem=2&find=
сайт.com/poisk=1&q=
...

-> надо сменить два крайние знака "=" на другой символ, не трогая остальные знаки равно. 

Список ссылок находится в Блокноте. 
PM MAIL   Вверх
THandle
Дата 11.4.2008, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 30
Всего: 372



Rodman, тут нужно поменять в Блокноте как мне кажется.

Как сделать это через сам блокнот я не знаю smile 
Но написал программку. Она в аттаче. Для интересующихся(а вдруг smile ) выкладываю и исходный код smile 

Код


unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Label1: TLabel;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure Pars(var s : string);
var
  i : integer;
begin
  for i := 3 to length(s) do
    if ((s[i-2] = '=') and (s[i-1] = #13) and (s[i] = #10)) then
      s[i-2] := Form1.Edit1.Text[1] else
    if ((s[i] = '=') and (i = length(s))) then
      s[i] := Form1.Edit1.Text[1];
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  s : string;
  h : THandle;
  size : integer;
begin
    h := FindWindowEx(FindWindow('Notepad', nil), 0, 'Edit', nil);
  if h <> 0 then
    begin
      size := SendMessage(h, WM_GETTEXTLENGTH, 0, 0);
      if size > 0 then
        begin
          SetLength(s, size);
          SendMessage(h, WM_GETTEXT, size + 1, LParam(s));
          Pars(s);
          SendMessage(h, WM_SETTEXT, 0, LParam(s));
        end;
    end;
end;

end.




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


Присоединённый файл ( Кол-во скачиваний: 1 )
Присоединённый файл  rep.rar 170,36 Kb
PM   Вверх
opjox
Дата 11.4.2008, 21:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 90
Регистрация: 17.1.2008

Репутация: 11
Всего: 14



Давно писал под линь аналогичное, сейчас чуть адаптировал под эту задачу.  

Код

#include <iostream>
#include <fstream>
#include <string>

int main(int argc, char ** argv)
{
  if(argc<3) {
    std::cout << "USE: program_name path/to/file/name new_char";
    return 0;
  }
  std::ifstream in(argv[1]);
  if(!in.is_open()) {
    std::cout << "Can not open file " << argv[1] << std::endl;
    return 0;
  }
  std::ofstream out("out");
  if(!out.is_open()) {
    in.close();
    std::cout << "Can not open out file\n";
    return 0;
  }
  
  std::string line;
  while(!in.eof()) {
    getline(in, line);
    if(line[line.length()-1]=='=') line[line.length()-1]=argv[2][0];
    out << line << std::endl;
  }
  
  in.close();
  out.close();
  return 0;
}

PM MAIL ICQ   Вверх
THandle
Дата 11.4.2008, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 30
Всего: 372



opjox, 


Цитата(Наташечка @  11.4.2008,  18:20 Найти цитируемый пост)
Список ссылок находится в Блокноте.  



Да и мне честно говоря кажется что задача к программированию совсем не относится.
PM   Вверх
opjox
Дата 11.4.2008, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 90
Регистрация: 17.1.2008

Репутация: 11
Всего: 14



THandle, да, не обратил внимания)

Ну, я надеюсь все ж не далеко ушел от поставлееной задачи, ведь вроде ниодна религия мира не запрещает пользоваться кнопкой save. smile

PM MAIL ICQ   Вверх
source777
Дата 11.4.2008, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 5
Всего: 56



Цитата(opjox @  11.4.2008,  21:45 Найти цитируемый пост)
Ну, я надеюсь все ж не далеко ушел от поставлееной задачи, ведь вроде ниодна религия мира не запрещает пользоваться кнопкой save. smile
Да, фиг их знает, сейчас много развелось smile 

P.S. Для блокнота реально сложная задача, вот если б его проапгрейдить до Notepad2 или Notepad++ smile тогда расплюнуть...




--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
Rififi
Дата 12.4.2008, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1254
Регистрация: 9.3.2008

Репутация: 4
Всего: 36



Наташечка, 
качаешь программу sed
в консоли изображаешь примерно такое:

$ sed -e s/\(.*\)=\(.*\)=$/\1-\2-/ test.txt > test2.txt

символы, помеченные красным, меняешь на свои.
запускаешь, получаешь оезультат, радуешься (:
и никаких монстриков в виде delphi/c++

было:
Код

сайт.com/ischem=2&find=
сайт.com/poisk=1&q=


стало:
Код

сайт.com/ischem-2&find-
сайт.com/poisk-1&q-

PM MAIL   Вверх
Mayk
Дата 12.4.2008, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 5
Всего: 134



Rififi, у тебя лишние исправления. 
Цитата(Rififi @  12.4.2008,  18:17 Найти цитируемый пост)

было:
сайт.com/ischem=2&find=
сайт.com/poisk=1&q=


стало:
    
сайт.com/ischem-2&find-
сайт.com/poisk-1&q-



имхо достаточно
Цитата

$ sed -e 's/=$/новые символы/' test.txt



PS. В нормальной текстовом редакторе это же делается с закрытыми глазами:
Цитата

:%s/=$/новые символы/


Это сообщение отредактировал(а) Mayk - 12.4.2008, 14:57


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0611 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.