Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 1
Регистрация: 15.06.2013
Сообщений: 67
1

Разбить текстовый файл на части

12.03.2015, 16:02. Показов 2042. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задача такая гружу в Tstringlist текстовый файл в нем строки их могут быть любое количество пользователь будет по Едиту выбрать на сколько строк нужно разбить
Программа должна создавать несколько текстовых файлов а вних строки по количеству заданному в едите делаю так но увы не правильно ибо в голову ничего не приходит )))
Delphi
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
unit Unit10;
 
interface
 
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, sEdit, Vcl.Buttons,
  sBitBtn, sDialogs, sLabel;
 
type
  TForm10 = class(TForm)
    sBitBtn1: TsBitBtn;
    sOpenDialog1: TsOpenDialog;
    sBitBtn2: TsBitBtn;
    sLabelFX1: TsLabelFX;
    sLabelFX2: TsLabelFX;
    sEdit1: TsEdit;
    procedure sBitBtn1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure sBitBtn2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form10: TForm10;
  baza: Tstringlist;
  login,pass: string;
  foundfile: textfile;
 
implementation
 
{$R *.dfm}
 
procedure TForm10.FormCreate(Sender: TObject);
begin
baza:= Tstringlist.Create;
  Createdir(ExtractFilePath(Application.ExeName)+'Разбитые базы');
 Assignfile(foundfile, ExtractFilePath(Application.ExeName)+'\Разбитые базы\'+Form10.sEdit1.Text+'.txt');
    Rewrite(foundfile);
    closefile(foundfile);
end;
 
procedure TForm10.sBitBtn1Click(Sender: TObject);
begin
if sOpenDialog1.Execute then
begin
  baza.Clear;
  baza.LoadFromFile(sOpendialog1.FileName);
end;
end;
 
 
procedure TForm10.sBitBtn2Click(Sender: TObject);
var
  i,g: Integer;
begin
for i :=0 to baza.Count do
begin
     if pos(':', baza[i])<>0 then
     begin
      login:=Copy(baza[i], 1, Pos(':',baza[i])-1);
      pass:=Copy(baza[i], Pos(':', baza[i])+1, Length(baza[i]));
    end
     else
      begin
      login:=Copy(baza[i], 1, Pos(';',baza[i])-1);
      pass:=Copy(baza[i], Pos(';', baza[i])+1, Length(baza[i]));
    end;
end;
 
       while g<strtoint(Form10.sEdit1.Text) do
     begin
     append(foundfile);
     writeln(foundfile,Login+';'+pass);
     closefile(foundfile);
     break;
     end;
 
end;
 
end.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.03.2015, 16:02
Ответы с готовыми решениями:

Прочитать текстовый файл и разбить его на части
Доброго всем времени суток. Подскажите, как можно реализовать следующую вещь: Есть текстовый...

Разбить текстовый файл размером в 18 GB на части размером в 1 GB
Есть txt файл 18gb, его нужно разбить на части по 1gb

Как разбить файл на две части, разархивировать и изменить вторую часть, а потом собрать файл обратно?
Здравствуйте! Хочу поднять тему Ципиховича Эндрю (в праве поднять тему отказано: новый вопрос,...

Разбить файл на части
Разбить файл на части. Размеры частей и имена новых файлов вводятся с клавиатуры

6
548 / 479 / 190
Регистрация: 11.12.2013
Сообщений: 2,494
12.03.2015, 17:17 2
может так
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var i: integer;
     j: integer;
     s: string;
     n: integer; //max строк в файле 
     m: integer; //№ файла куда копировать 
begin
 s:='';
 j:=1;
 m:=1;
 for i:=0 to baza.Count-1 do 
  if (j<n)and(i<>baza.Count-1) then begin
   s:=s+baza.Strings[i];
   inc(j);
  end else begin
   SaveToFile(s,m); //это процедура, которая будет записывать в файл. напишите ее сами
   s:=baza.Strings[i];
   inc(m);
   j:=1;
  end; 
end;
1
0 / 0 / 1
Регистрация: 15.06.2013
Сообщений: 67
12.03.2015, 17:28  [ТС] 3
Если честно ничего не понятно цель такая загружается база с помощю OpenDialog например в allbaza: Tstringlist;
Эту allbaza нужно разбить на части в .txt файлы на столько строк,сколько указанно в Edit например если в allbaza
2000 строк а в edit указанно чтоб разбить на 1000 то программа создать два файла .txt а в них по 1000 строк с названием 1000.txt
0
548 / 479 / 190
Регистрация: 11.12.2013
Сообщений: 2,494
12.03.2015, 17:39 4
расписал что к чему
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var i: integer;
     j: integer;
     s: string;
     n: integer; //max строк в файле 
     m: integer; //№ файла куда копировать 
begin
 s:='';
 j:=1;
 m:=1;
 if not TryStrToInt(Edit1.Text,n) then Exit; //проверяем что в Edit1 введено число, если нет - выходим
 for i:=0 to baza.Count-1 do //проходим по всем строкам stringlist
  if (j<n)and(i<>baza.Count-1) then begin //проверяем кол-во считанных строк < Edit1
                                                         // или считали не последнюю строку stringlist
   s:=s+baza.Strings[i];                        //добавляем текущую строку к s
   inc(j);
  end else begin                                  //достигли максимального числа строк в файле или конец stringlist
                                                       //записываем значение из s в файл с №=m, например, 1.txt, 2.txt.....
   SaveToFile(s,m); //это процедура, которая будет записывать в файл. напишите ее сами
   s:=baza.Strings[i];
   inc(m);    //№ следующего файла для сохранения                                    
   j:=1;      //кол-во считанных строк из stringlist
  end; 
end;
0
0 / 0 / 1
Регистрация: 15.06.2013
Сообщений: 67
12.03.2015, 17:51  [ТС] 5
SaveToFile(s,m); //это процедура, которая будет записывать в файл. напишите ее сами
То есть создать файл типа
foundfile: textfile;
и записать в него
s,m
?
0
548 / 479 / 190
Регистрация: 11.12.2013
Сообщений: 2,494
12.03.2015, 17:53 6
Лучший ответ Сообщение было отмечено v1dark как решение

Решение

да, создать файл и записать в него s.
0
0 / 0 / 1
Регистрация: 15.06.2013
Сообщений: 67
12.03.2015, 18:16  [ТС] 7
Delphi
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
var i: integer;
     j: integer;
     s,gog: string;
     n: integer; //max строк в файле
     m: integer; //№ файла куда копировать
begin
 s:='';
 j:=1;
 m:=1;
 for i:=0 to baza.Count-1 do
  if (j<n)and(i<>baza.Count-1) then begin
   s:=s+baza.Strings[i];
   inc(j);
  end else begin
   s:=baza.Strings[i];
     Createdir(ExtractFilePath(Application.ExeName)+'Разбыте базы');
    Assignfile(foundfile, ExtractFilePath(Application.ExeName)+'\Разбыте базы\'+Form10.sEdit1.Text+'.txt'); //Также название папки и название файла с гудами (Изменять только то что синим, кроме .txt)
    Rewrite(foundfile);
    closefile(foundfile);
    Append(foundfile);
      Writeln(foundfile,s);
      Closefile(foundfile);
 
 
 
   inc(m);
   j:=1;
  end;
end;
Сделал так но он создает 1 файл и туда добавляет 1 строку
и все

Добавлено через 12 минут
При том создается только 1 файл )) а остаток не создается
0
12.03.2015, 18:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.03.2015, 18:16
Помогаю со студенческими работами здесь

Разбить файл на части
вот недавно изучил тему про fstream такая задача, нужно разбить файл на столько частей на...

Разбить файл на части
У меня есть текстовый документ весом 2.5 ГБ, можно ли разбить его на части не загружая его...

Разбить ISO файл на части
Подскажите пожалуйста прогу для разбития .iso файлов допустим на 2 части для записи на dvd. (С...

Разбить файл на равные части
Подскажите пожалуйста, как разбить файл с содержимым, средствами с++ на равные части(последний...


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

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