![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
NEFFboy |
![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 15 Пол: Мужской Реальное имя: Александр Репутация: ![]() ![]() ![]() |
есть текстый файл, который содержит текст, его нужно открыть, перемешать строки текста в нём в произвольном порядке и сохранить в другом файле.
кусок кода: Код begin Edit1.Text; // сдесь исходный файл, в котором берём строки. //тут нужен код который пермешивает строки. Edit2.Text; // здесь сохраняем перемешанный текст. -------------------- не дня без строчки кода.
|
![]() ![]() |
klem4 |
![]()
Сообщение
#2
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
читаешь строки в массив, а потом делаешь что-то вроде этого:
// читаем строки в массив arr
randomize;
mix_count := random(50); // количество рандомных перестановок
for i := 1 to mix_count do begin
p := random(n) + 1; // n - количество строк, прочитанных из файла в массив
q := random(n) + 1;
T := arr[ p ];
arr[ p ] := arr[ q ];
arr[ q ] := T;
end;
// пишем массив в новый файл
Добавлено через 3 мин. ну или заюзать для работы TStrings всесто массива. -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
NEFFboy |
![]()
Сообщение
#3
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 15 Пол: Мужской Реальное имя: Александр Репутация: ![]() ![]() ![]() |
ну или заюзать для работы TStrings всесто массива. не подскажешь как заюзать TSrings? приложение без TMemo. Сообщение отредактировано: NEFFboy - 7.05.2007 8:25 -------------------- не дня без строчки кода.
|
hardcase |
![]()
Сообщение
#4
|
![]() code warrior ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 484 Пол: Мужской Реальное имя: Славен Репутация: ![]() ![]() ![]() |
не подскажешь как заюзать TSrings? приложение без TMemo. Код var s: TStringList; s := TStringList; s.LoadFromFile('filename.txt'); // далее можно работать с s[] -------------------- ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
|
klem4 |
![]()
Сообщение
#5
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
procedure TForm1.Button1Click(Sender: TObject);
var
s: TStringList;
swap_count, p, q: Integer;
begin
s := TStringList.Create;
s.LoadFromFile('C:\text.txt');
swap_count := 50;
while (swap_count > 0) do begin
p := random(s.Count); q := random(s.Count);
s.Exchange(p, q);
dec(swap_count);
end;
s.SaveToFile('c:\text.txt');
s.Free;
end;
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
NEFFboy |
![]()
Сообщение
#6
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 15 Пол: Мужской Реальное имя: Александр Репутация: ![]() ![]() ![]() |
спасибо за помощь...
разобрался сам, сделал, то что мне нужно
var
a:TStringList;
i,first,last:integer;
s:widestring;
begin
randomize;
a:=TStringList.Create;
a.LoadFromFile(Edit1.Text);
for i:=0 to a.Count-1 do
begin
first:=random(a.Count-1);
last:=random(a.Count-1);
s:=a.Strings[first];
a.Strings[first]:=a.Strings[last];
a.Strings[last]:=s;
end;
a.SaveToFile(Edit2.Text);
a.Free;
end;
-------------------- не дня без строчки кода.
|
klem4 |
![]()
Сообщение
#7
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Ну в принципе тоже что и я написал, только у тебя
Цитата random(a.Count-1); Единицу вычитать не надо, ибо random(x) возвращает случайное значение в интервале от 0 до X - 1 -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
NEFFboy |
![]()
Сообщение
#8
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 15 Пол: Мужской Реальное имя: Александр Репутация: ![]() ![]() ![]() |
-------------------- не дня без строчки кода.
|
klem4 |
![]()
Сообщение
#9
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Ну вот захотелось мне 50
![]() -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
![]() ![]() |
![]() |
Текстовая версия | 29.07.2025 22:24 |