0 / 0 / 0
Регистрация: 21.06.2013
Сообщений: 3
1

Выборка из txt файла

21.06.2013, 17:59. Показов 1971. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!
Есть база в .txt (вообще-то, в .dba) в таком виде:

@@@@@-START-@@@@@
Заголовок
// пробелы
// ещё пробелы
#####-LIST-######
< Заголовок >
Обычный текст 1 // почему-то с переносами в непонятных для меня местах (не совсем понятно, откуда появились)

//пробелы

Обычный текст 2 // опять с лишними переносами

@@@@@-STOP-@@@@@@
@@@@@-START-@@@@@ (уже новый цикл, и так далее...)

Необходимо сделать поэтапную выборку:
а) Заголовок
б) Обычный текст 1: цифры, буквы,
в) Обычный текст 2: цифры, буквы,

От знакомства с регулярными выражения вскипел мозг%, поэтому заранее буду благодарна за любую помощь!)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.06.2013, 17:59
Ответы с готовыми решениями:

Выборка определённых строк из файла .txt
Добрый вечер, столкнулся с учебной задачей которую не понимаю как реализовать. Суть в том что код...

Выборка строк из txt-файла
Доброе время суток, есть txt файл в котором есть строки с данными , но бывает что появляется...

Выборка данных из txt-файла
Как сделать выборку данных из файла.txt и вывести эти данные в мемо? Delphi

Файл: Переписать текст в t3.txt сначала из файла t1.txt, а потом из файла t2.txt
1) Переписать текст в t3.txt сначала с файла t1.txt, а потом с файла t2.txt 2) Файл t2.txt...

4
104 / 88 / 21
Регистрация: 19.05.2012
Сообщений: 458
26.06.2013, 21:30 2
Конкретный пример из базы можно?
Кусок текста
0
0 / 0 / 0
Регистрация: 21.06.2013
Сообщений: 3
27.06.2013, 07:59  [ТС] 3
Да, конечно. Это база рецептов с обычныс текстом:

@@@@@-START-@@@@@
Австралийский летний салат


#####-LIST-######
< Австралийский летний салат >
8 тонких ломтиков ветчины, 4 помидора, по одному стакану
нарубленных кубиками огурцов, яблок и сельдерея, 2 столовые
ложки сока апельсина, 2-3 листа салата, майонез.

Каждый ломтик ветчины скатать в небольшой рулет. Огурцы,
яблоки и сельдерей перемешать с соком апельсина, выложить на
плоскую тарелку, обложить кругом маринованными салатными
листьями, четвертушками помидоров и рулетами из ломтиков
ветчины Обильно полить майонезом.
@@@@@-STOP-@@@@@@
@@@@@-START-@@@@@
Австралийский рисовый пудинг


#####-LIST-######
< Австралийский рисовый пудинг >
1 стакан риса, 2 стакана воды, 3 столовые ложки изюма, 100 г
инжира, 100 г фиников, порошок имбиря на кончике ножа, сахар
пожеланию, 1 стакан молока, 2 белка, свежие или слегка
проваренные фрукты.

Рис отварить в воде в течение 10 минут. Изюм, инжир, финики
мелко нарезать, смешать с порошком имбиря и затем с отварным
рисом, добавить сахар. Потушить на совсем слабом огне, влить
стакан молока. Пудингу дать остыть, прибавить взбитые белки,
выложить пудинг в миску, которую предварительно сполоснуть
холодной водой, поставить на холод. Перед подачей на стол
перевернуть пудинг на тарелку, поверхность его украсить свежими
или вареными фруктами.
@@@@@-STOP-@@@@@@

И так далее...
0
0 / 0 / 0
Регистрация: 21.06.2013
Сообщений: 3
05.07.2013, 19:47  [ТС] 4
Студент-с, Добрый день! Не получилось выполнить выборку по данным, которые я написала? Я сама пробовала, но чего-то я недопонимаю, поскольку совсем не то, что требуется, выдает. Я пыталась вычленить для начала заголовки, которые стоят между знаками < >, но что-то совсем не то выдает, я просто не программист, по примерам пробовала разобраться. А можно, к примеру, выбрать таким же способом, например, между > и пробелом, между start@@@ и @@stop, например? Заранее благодарю за помощь)
0
296 / 284 / 84
Регистрация: 10.05.2013
Сообщений: 920
30.07.2013, 17:49 5
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
$file = file('t.txt'); // зачитываем файл
 
function MyFunction($file)
{
    $result = array();
    $ingridient = '';
    $prepare = '';
    foreach($file as $key => $string)
    {
        $file[$key] = trim($string);
    }
    foreach($file as $string)
    {
        $string = trim($string);
        if($string == '@@@@@-START-@@@@@')
        {
            $array = array();
            $a = 1;
            continue;
        }
        if($a == 1 and !empty($string))
        {
            $array['title'] = $string;
            $a = 0;
        }
        if($string == '#####-LIST-######')
        {
            $title = 1;
            continue;
        }
        if($title == 1 and !empty($string))
        {
            $string = trim(str_replace(array ('<','>'),'',$string));
            //$string = trim(str_replace('>','',$string));
            $array['subtitle'] = $string;
            $title= 0;
            $t = 1;
            continue;
        }
        if(!empty($string) and $t == 1)
            $ingridient = $ingridient.$string;
        if(empty($string) and $t == 1)
            {
                $t = 0;
                $i = 1;
                continue;
            }
        if(!empty($string) and $i == 1 and $t == 0 and $string != '@@@@@-STOP-@@@@@@')
        {
            $prepare = $prepare.$string;
        }
        if($string == '@@@@@-STOP-@@@@@@')
        {
            $array['ingridients'] = $ingridient;
            $array['prepare'] = $prepare;
            array_push($result,$array);
            $t = 0;
        }
    }
    return $result; // возвращает массив
}
$r = MyFunction($file);
print_r($r);
P.S. Знаю, тема месячной давности, но захотелось решить данную задачку.
1
30.07.2013, 17:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.07.2013, 17:49
Помогаю со студенческими работами здесь

В папке К2 создайте файл t3.txt, в который перепишите вначале текст из файла t1.txt, а затем из t2.txt
Программным путем: 1. В папке С:\temp создайте папки К1 и К2. 2. В папке К1: a) создайте файл...

Переписать компоненты файла 1.txt в файл 3.txt так, чтобы в файле 3.txt числа шли в определенном порядке
Дан файл 1.txt, компоненты которого являются целыми числами.Файл 1.txt содержит столько же...

Чтение из файла 'New.txt', запись четных строк в '1.txt', а нечетных в '2.txt'
В общем все работает, но есть &quot;НО&quot;, иначе бы не открывал тему. Содержимое исходного файла: 1 1 1...

Вставить N последних строк одного TXT-файла в конец другого TXT-файла
Здравствуйте, подскажите пожалуйста, как можно скопировать n последних строк одного тхт файла и...

Добавить содержание файла 2.txt в конец файла 1.txt
(КОНСОЛЬ) Скажите пжл как осуществить такое действие: У меня есть два файла 1.txt, в нем...

Создание txt файла с данными из другого txt файла
Всем привет. Создаю файл: if (!FileExists(&quot;logfile.txt&quot;)) { TStringList * LogFile = new...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru