Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.04.22;
Скачать: CL | DM;

Вниз

Как перемешать слова в Memo   Найти похожие ветки 

 
ppcumax   (2007-03-29 02:11) [0]

Доброго времени суток Господа!

Столкнулся с такой проблемой, есть текст в Memo нужно случайным образом перемешать там все слова, скажите если какие-то стандартные функции или есть какой-то другой выход из данной ситуации?


 
Германн ©   (2007-03-29 02:45) [1]

Да какие ж тут могут быть стандартные функции? Такое, наверно тебе первому пришло в голову сделать :)


 
RASkov   (2007-03-29 03:31) [2]

> [0] ppcumax   (29.03.07 02:11)

:)
Во загнул... а потом тебе еще и восстановить текст надо будет?
Гиморно, заполни массив(ArStr: array of String) "словами" из мемо, перемешай его(массив), выведи назад в мемо как тебе заблагорассудится... :)
Чё тока не придумают :)


 
Германн ©   (2007-03-29 03:39) [3]


> заполни массив(ArStr: array of String) "словами" из мемо

А "дополнительный" массив тут и не особо нужен, имхо. Массив в TMemo уже и так есть :)


 
RASkov   (2007-03-29 03:45) [4]

хотя можно пробежаться и по строкам перемешав там все слова, один хер каша получится :)


 
Германн ©   (2007-03-29 04:01) [5]


> RASkov   (29.03.07 03:45) [4]

Есть Text, и варианты его обработки...

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


 
ppcumax ©   (2007-03-29 14:12) [6]

Хорошо, а как перемешать строки в Memo?


 
RASkov   (2007-03-29 16:09) [7]

> [6] ppcumax ©   (29.03.07 14:12)

Так тебе "слова" не нужны уже?

var N: Integer;
begin
 for N := 0 to Memo.Lines.Count-1 do
   Memo.Lines.Move(N, Random(Memo.Lines.Count));
end;


 
ppcumax ©   (2007-03-29 16:49) [8]


> Так тебе "слова" не нужны уже?var N: Integer;begin  for
> N := 0 to Memo.Lines.Count-1 do    Memo.Lines.Move(N, Random(Memo.
> Lines.Count));end;


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


 
RASkov   (2007-03-29 17:00) [9]

> [8] ppcumax ©   (29.03.07 16:49)

Сам напиши, там делов-то... "дергание слов" из строки тут не так далеко в какойто ветке есть....


 
StriderMan ©   (2007-03-29 17:26) [10]


> мешать слова было бы круто

еще круче было бы мешать символы


 
Жуков Олег   (2007-03-29 18:03) [11]


> мешать слова было бы круто, был бы очень благодарен, если
> бы кто-то написал такую програмку


Пожалуйста:

unit Raving;

interface

function GetRaving(): string;

implementation

uses
 SysUtils;

function GetRandomWord(): string;
const
 Words: Array[0..79] of string = (
   "More",
   "The",
   "These",
   "Words",
   "Random",
   "Seen",
   "Create",
   "Was",
   "Been",
   "Come",
   "Sleep",
   "Cat",
   "Dog",
   "Love",
   "Stick",
   "Handing",
   "Yellow",
   "Submarin",
   "We",
   "Us",
   "Live",
   "In",
   "Out",
   "Up",
   "Better",
   "Useful",
   "Work",
   "Delphi",
   "in",
   "from",
   "sweet",
   "parrot",
   "captain",
   "she",
   "beautiful",
   "hardest",
   "another",
   "bad",
   "sentention",
   "stop",
   "bathroom",

   "can",
   "should",
   "would",
   "can""t",
   "sorry",
   "you",
   "girl",
   "woman",
   "people",
   "one",
   "earth",
   "three",
   "eleven",
   "1969",
   "2006",
   "saturday",
   "diffirence",

   "useful",
   "great",
   "money",
   "silver",
   "well",
   "boys",
   "fear",
   "russian",
   "why",
   "who",
   "where",
   "here",
   "when",
   "asked",
   "forever",
   "future",
   "paste",
   "want",
   "like now",
   "beer",
   "cake",
   "eating"
   );
begin
 Result := Words[Random(High(Words) + 1)];
end;

const
 Signs: array[0..3] of string = (".", "?", "!", "...");

function GetRandomPhrase(): string;
var
 i,
 WordCount: Integer;
begin
 Result := "";
 WordCount := random(10) + 3;
 for i := 1 to WordCount do
 begin
   if i > 1 then
     Result := Result + " ";
   Result := Result + GetRandomWord();
 end;
 Result := AnsiLowerCase(Result);
 if Length(Result) > 0 then
   Result[1] := AnsiUpperCase(Result[1])[1];
 Result := Result + Signs[Random(High(Signs) + 1)];
end;

function GetRaving(): string;
var
 i,
 SentCount: Integer;
begin
 Result := "";
 SentCount := random(5) + 15;
 for i := 1 to SentCount do
 begin
   if i > 1 then
     Result := Result + " ";
   Result := Result + GetRandomPhrase();
   if Random(5) = 1 then
     Result := Result + #13#10;
 end;
end;

end.
...
ShowMessage(GetRaving());


 
Vlad Oshin ©   (2007-03-29 18:09) [12]


> Такое, наверно тебе первому пришло в голову сделать :)

не первому :)
давно еще хотел написать программку, что б мешала тексты таким образом, с заданным процентом замеса :)
и еще окончания съедала

есть теория, что после быстрого чтения такого текста, смысл написанного все же улавливается, но само чтение происходит гораздо быстрее
ибо не задумываешься над каждым местом, не читаешь каждое словосочетание - оно бессмысленно, общую картину даст только группа рядом идущих словосочетаний. Меняя процент замеса, заставляем читать все большими кусками.
Смысл появится позже, после определенной дозы :)


 
Leonid Troyanovsky ©   (2007-03-29 21:55) [13]


> Vlad Oshin ©   (29.03.07 18:09) [12]

> Смысл появится позже, после определенной дозы :)

При некоторой дозе может заколбасить от любого куска.

--
Regards, LVT.


 
Anatoly Podgoretsky ©   (2007-03-29 22:25) [14]

> ppcumax  (29.03.2007 16:49:08)  [8]

> был бы очень благодарен, если бы кто-то написал такую програмку

Насколько благодарен?



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

Текущий архив: 2007.04.22;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.044 c
2-1175254920
Alex_C
2007-03-30 15:42
2007.04.22
При FreeLibrary( hDLL ) основное окно проги пропадает


15-1175114591
ProgRAMmer Dimonych
2007-03-29 00:43
2007.04.22
Посоветуйте, как перевести...


2-1175095227
MaLoY
2007-03-28 19:20
2007.04.22
Помогите с задачкой


4-1164626298
jiny
2006-11-27 14:18
2007.04.22
Проблема с ANI-курсорами (при извлечении из ресурса)


1-1172653682
Alexander_K
2007-02-28 12:08
2007.04.22
Borland Developer Studio 2006 и MapX