![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
![]() Мне нужно рандомно выдать из файла текст между разделителем '#' к примеру в файле такая запись:
Цитата:
Загружаю весь файл в переменную и дальше думаю надо вести поиск по '#' в файле подсчитать их число и копировать, подскажите точней |
#2
|
||||
|
||||
![]() узнаешь число этих # = N, потом берешь random(N-1)+1, ищешь K-ю решетку (нумеруются теперь с 1) и копируешь весь текст до K+1й
jmp $ ; Happy End! The Cake Is A Lie. |
#3
|
||||
|
||||
![]() как узнать число? и искать определенную 2 к примеру
|
#4
|
||||
|
||||
![]() Загрузил в строку, и циклом проверяешь символы.
Код:
var s: TStringList; i: integer; N: Inetger; begin N := 0; s := TStringList.Create; s.LoadFromFile(...); { for i:=0 to s.Count-1 do for k:=1 to Length(s.Strings[i]) do if(s.Strings[i][k] = '#') then inc(N); } // или for i:=1 to Length(s.Text) do if(s.Text[i] = '#') then inc(N); /// Как-то так: Код:
type m=record x, y: integer; var m_: array of m; countN: integer; begin setlength(m_, 1); ... // и дальше все тоже самое,только с учетом, пр нахождении знака "#" надо не только увеличивать их кол-во, но и записывать его местоположение в тексте. Помогаю за Спасибо ![]() |
#5
|
||||
|
||||
![]() Все как-то сложно, я обычно делаю так - загружаю файл в листбокс а потом :
Код:
procedure TForm1.Button1Click(Sender: TObject); var a:String; s:integer; begin S:=Random(ListBox1.Items.Count-1); A:=Listbox1.Items.Strings[s]; if a='#' then A:=Listbox1.Items.Strings[s+1]; Label1.Caption:=A; end; |
#6
|
||||
|
||||
![]() Цитата:
Помогаю за Спасибо ![]() |