Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 17.04.2014, 22:31   #1
alman12
Форумчанин
 
Регистрация: 30.12.2013
Сообщений: 466
По умолчанию почему не сохраняеть данные в Tstringlist c под другим ?

persons.SaveToFile('C:\Users\SAMSUN G\Desktop\txt.dat');
когда я сохраняю данные в Tstringlist сохраняет так

Memo2

Memo2

uj

а потом не правилно отображается
как сделат чтобы сохранялся как в ниже

Memo2
Memo2
uj
alman12 вне форума
Старый 17.04.2014, 23:50   #2
KaDima28
Пользователь
 
Регистрация: 24.03.2014
Сообщений: 48
По умолчанию

Покопайся, может найдешь

http://www.delphi.int.ru/articles/118/
KaDima28 вне форума
Старый 18.04.2014, 00:24   #3
XE5
Заблокирован
 
Регистрация: 02.03.2014
Сообщений: 439
По умолчанию

Не найдёт. Гарантирую.
XE5 вне форума
Старый 18.04.2014, 00:32   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

Цитата:
Не найдёт. Гарантирую.
Значит будем лечить

Уберите пустые строки, например так:
Код:
for i:=Strings.Count -1 downto 0 do
begin
  if (Trim(Strings[i]) = EmptyStr) then
     Strings.Delete(i);
end;
Но баг скорее при сохранении. Просто проверяйте чтоб записываемая строка была не пустой.
Человек_Борща вне форума
Старый 20.04.2014, 18:32   #5
alman12
Форумчанин
 
Регистрация: 30.12.2013
Сообщений: 466
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Значит будем лечить

Уберите пустые строки, например так:
Код:
for i:=Strings.Count -1 downto 0 do
begin
  if (Trim(Strings[i]) = EmptyStr) then
     Strings.Delete(i);
end;
Но баг скорее при сохранении. Просто проверяйте чтоб записываемая строка была не пустой.
ощибка выдает невозможно сохранят
alman12 вне форума
Старый 20.04.2014, 18:49   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Полный код и фотку ошибки в студию.
I'm learning to live...
Stilet вне форума
Старый 20.04.2014, 18:55   #7
alman12
Форумчанин
 
Регистрация: 30.12.2013
Сообщений: 466
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Полный код и фотку ошибки в студию.
Код:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type

  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    ListBox1: TListBox;
    Edit1: TEdit;
    Memo1: TMemo;
    Memo2: TMemo;
    Edit2: TEdit;
    Label2: TLabel;
    Button3: TButton;
    Button4: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
    procedure ListBox1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
    Persons:TStringList;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
//if not Assigned(Persons) then
//    Persons := TStringList.Create;
  Persons.Add(edit2.text+memo2.Text);
  Listbox1.Items.Add(Edit2.Text);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if ListBox1.ItemIndex>-1 then begin
  Persons.Delete(ListBox1.ItemIndex);
  ListBox1.Items.Delete(ListBox1.ItemIndex);
end;
end;

procedure TForm1.Button3Click(Sender: TObject);
var i:string;
begin
 for i:=Strings.Count -1 downto 0 do
begin
  if (Trim(Strings[i]) = EmptyStr) then
begin
     Strings.Delete(i);

persons.SaveToFile('C:\Users\SAMSUNG\Desktop\mil.txt');

end;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
persons.loadfromfile('C:\Users\SAMSUNG\Desktop\mil.dat');
ListBox1.Items.loadfromFile('C:\Users\SAMSUNG\Desktop\lil.dat');
end;

procedure TForm1.Edit1Change(Sender: TObject);
var x ,i: integer;
   s : string;
begin
  S:=edit1.text;
with ListBox1 do ItemIndex := Perform(LB_SELECTSTRING, ItemIndex, LongInt(S));
//Listbox1.Perform(LB_SELECTSTRING, 0, longint(Pchar(Edit2.text)));

x:= 1 + (listbox1.ItemIndex);
label2.Caption:='N_ '+inttostr(x);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 Persons := TStringList.Create;
end;

procedure TForm1.ListBox1Click(Sender: TObject);
var x : integer;
begin
Memo1.Text := Persons[Listbox1.ItemIndex];
x:= 1 + (listbox1.ItemIndex);
label2.Caption:='N_ '+inttostr(x);


end;

end.

Последний раз редактировалось Stilet; 20.04.2014 в 20:42.
alman12 вне форума
Старый 20.04.2014, 20:48   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Во-первых: У нас на форуме приняты моральные правила. И среди них выделение кода спецтегом. Пожалуйста оформляй посты читабельно.

Во-втрых:
Цитата:
procedure TForm1.Button3Click(Sender: TObject);
var i:string;
begin
for i:=Strings.Count -1 downto 0 do
begin
if (Trim(Strings[i]) = EmptyStr) then
begin
Strings.Delete(i);

persons.SaveToFile('C:\Users\SAMSUN G\Desktop\mil.txt');

end;
end;
Посчитай сколько здесь begin и сколько end.
Их количество должно совпадать, а у тебя одного не хватает.

В-третьих:
Уж если и писать поджимку то так:
Код:

procedure TForm1.Button3Click(Sender: TObject);
var i:string;
begin
With persons do 
 for i:=Count -1 downto 0 do
  if (Trim(Strings[i]) = '') then
     Delete(i);
try
 persons.SaveToFile('C:\Users\SAMSUNG\Desktop\mil.txt');
except
 on E:Exception do ShowMessage('Не могу сохранить файл. Ошибка:'+e.Message);
end;
end;
Ну и напоследок: Может пора уже начать взрослеть и думать головой а не бездумно копипастить чужой код не попытавшись в нем разобраться?. С одной стороны направление у тебя верное, но код переполнен детскими ошибками, которые даже так просто не вставишь.
I'm learning to live...
Stilet вне форума
Старый 20.04.2014, 20:51   #9
alman12
Форумчанин
 
Регистрация: 30.12.2013
Сообщений: 466
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Во-первых: У нас на форуме приняты моральные правила. И среди них выделение кода спецтегом. Пожалуйста оформляй посты читабельно.

Во-втрых:

Посчитай сколько здесь begin и сколько end.
Их количество должно совпадать, а у тебя одного не хватает.

В-третьих:
Уж если и писать поджимку то так:
Код:

procedure TForm1.Button3Click(Sender: TObject);
var i:string;
begin
With persons do 
 for i:=Count -1 downto 0 do
  if (Trim(Strings[i]) = '') then
     Delete(i);
try
 persons.SaveToFile('C:\Users\SAMSUNG\Desktop\mil.txt');
except
 on E:Exception do ShowMessage('Не могу сохранить файл. Ошибка:'+e.Message);
end;
end;
Ну и напоследок: Может пора уже начать взрослеть и думать головой а не бездумно копипастить чужой код не попытавшись в нем разобраться?. С одной стороны направление у тебя верное, но код переполнен детскими ошибками, которые даже так просто не вставишь.
ошибку выдает вот здес
for i:=Count -1 downto 0 do
alman12 вне форума
Старый 20.04.2014, 20:53   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Думать все равно не хочешь
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Данные из Memo в TStringList Ilya_L Помощь студентам 2 03.12.2011 07:45
Можно ли строить графики один под другим в TeeChart 8? Зойберг Компоненты Delphi 5 11.05.2010 13:59
поиск и сохранение под другим именем fitc Общие вопросы Delphi 3 17.07.2009 18:50
Запуск процесса под другим пользователем Андреy Win Api 3 03.12.2008 17:57
Как скопировать проект под другим именем? Dimoney Свободное общение 4 17.12.2007 13:50