Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.03.2011, 13:49   #1
yuliyayuliya
Пользователь
 
Регистрация: 12.03.2011
Сообщений: 14
По умолчанию текст и файл

Дан файл, содержащий текст на русском языке. В предложениях некоторые из слов записаны подряд несколько раз (предложение заканчивается точкой или восклицательным знаком). Получить в новом файле отредактированный текст, в котором удалены повторные вхождения слов в предложение.


Нашла на делфи...кто нибудь мог бы переписать её на с/с++?Заранее спасибо....



procedure TForm1.Button1Click(Sender: TObject);
const
Fn1 = 'file1.txt';
Fn2 = 'file2.txt';
//Список разделителей слов.
D = [' ', '.', ',', ':', ';', '!', '?', '-', #9, #10, #13];
var
F1, F2 : TextFile;
S, CurWord, LastWord : String;
i, P1, P2, LenS, LenWord : Integer;
begin
AssignFile(F1, Fn1);
Reset(F1);
AssignFile(F2, Fn2);
Rewrite(F2);

while not Eof(F1) do begin
Read(F1, S);

LenS := Length(S);
P1 := 0;
P2 := 0;
LastWord := '';
//Перебор символов прочитанной строки справа - налево.
//Т. е., по ходу движения, "предыдущее" слово - справа, "следующее" слово - слева.
for i := LenS downto 1 do begin
//Пропускаем разделители.
if S[i] in D then Continue;
//Отслеживаем конец слова.
if (i = LenS) or (S[i + 1] in D) then
P2 := i
;
//Отслеживаем начало слова.
if (i = 1) or (S[i - 1] in D) then begin
P1 := i;
LenWord := P2 - P1 + 1;
//Определяем очередное слово.
CurWord := Copy(S, P1, LenWord);
//Сравниваем текущее слово с предыдущим. Если равны - удаляем текущее слово
//из строки.
if CurWord = LastWord then
Delete(S, P1, LenWord)
;
LastWord := CurWord;
end;
end;

Write(F2, S);
if not Eof(F1) then begin
Readln(F1);
Writeln(F2);
end;
end;

CloseFile(F1);
CloseFile(F2);
end;
yuliyayuliya вне форума Ответить с цитированием
Старый 30.03.2011, 14:31   #2
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

могу реализовать за небольшое вознаграждение
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 30.03.2011, 15:13   #3
OlegVE
Форумчанин
 
Регистрация: 27.09.2010
Сообщений: 376
По умолчанию

yuliyayuliya, посмотрите
http://www.cyberforum.ru/cpp-beginners/thread78438.html
и
http://deadbeef.narod.ru/work/progs/index.htm здесь что-то готовое
Не разбирался, не мой язык

Последний раз редактировалось OlegVE; 30.03.2011 в 17:20.
OlegVE вне форума Ответить с цитированием
Старый 30.03.2011, 17:20   #4
yuliyayuliya
Пользователь
 
Регистрация: 12.03.2011
Сообщений: 14
По умолчанию

Цитата:
Сообщение от OlegVE Посмотреть сообщение
yuliyayuliya, посмотрите
http://www.cyberforum.ru/cpp-beginners/thread78438.html
и
http://deadbeef.narod.ru/work/progs/index.htm
Не разбирался, не мой язык
чтото попроще не советуете?....а то я совсем начинающая......сложно даётся.....
yuliyayuliya вне форума Ответить с цитированием
Старый 30.03.2011, 17:22   #5
OlegVE
Форумчанин
 
Регистрация: 27.09.2010
Сообщений: 376
По умолчанию

Цитата:
чтото попроще не советуете?....а то я совсем начинающая......сложно даётся.....
Ни чем не могу помочь
Цитата:
Сообщение от OlegVE Посмотреть сообщение
Не разбирался, не мой язык
Задайте вопросы, создав новые темы, и всё, что не понимаете спрашивайте.

Последний раз редактировалось OlegVE; 30.03.2011 в 17:25.
OlegVE вне форума Ответить с цитированием
Старый 30.03.2011, 22:04   #6
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

юля, что не понятно, спрашивайте, объясню здесь или в личке
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 05.04.2011, 17:32   #7
yuliyayuliya
Пользователь
 
Регистрация: 12.03.2011
Сообщений: 14
По умолчанию

Цитата:
Сообщение от RUSt88 Посмотреть сообщение
юля, что не понятно, спрашивайте, объясню здесь или в личке
Пробовала писать.....ничего не получается....думала просто текст разбить на слова и если слова неповторяются выводить...но чтото не так

#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;
int main()
{ string s;

int i=0;
while ( getline(cin,s) )
{ s=!s[i+1];
cout<<s;
i++;
}
_getch();
return 0;
}
yuliyayuliya вне форума Ответить с цитированием
Старый 05.04.2011, 19:28   #8
yuliyayuliya
Пользователь
 
Регистрация: 12.03.2011
Сообщений: 14
По умолчанию

Цитата:
Сообщение от RUSt88 Посмотреть сообщение
юля, что не понятно, спрашивайте, объясню здесь или в личке
не посмотрите как ошибки исправить....
#include "stdafx.h"
#include "iostream"
#include <conio.h>

using namespace std;

int main()
{ int i=0; int j=0;
FILE*str;
str=fopen("n","r");
while(!feof(str))
for (i=0;i<!feof(str);i++)
for(j=0;j<!feof(str);j++)
if((i!=j)&&(str[i]==str[j]))
cout<<str[i];
getch();
return 0;
}
yuliyayuliya вне форума Ответить с цитированием
Старый 06.04.2011, 08:45   #9
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

сейчас нет времени, а потом могу забыть, стучи в аську, объясню
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипт сохраняющий текст в файл maksim1995 PHP 9 13.02.2011 12:45
Сохранить в текстовый файл текст из Memo и текст из нескольких Edit misher Общие вопросы Delphi 5 02.01.2011 15:37
Вложить файл в текст Malinovaya Microsoft Office Word 0 18.10.2010 16:48
Дан файл, содержащий текст, записанный строчными русскими буквами. Получить в др.файле тот же текст, develish151 Microsoft Office Word 4 05.05.2010 13:20
Дан файл, содержащий текст на русском языке.Составить в алфавитном порядке список слов в файл. JiLiYa Паскаль, Turbo Pascal, PascalABC.NET 3 26.12.2008 12:05