Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > как проверить пустая строка или нет?


Автор: zhefran 2.11.2007, 17:05
Как мне проверить пустая строка или нет?
Я вынимаю инфу с файла и отображаю ее в мемо. если файл пуст, то выводить припустим "файл пуст". 
Проверять размер файла или есть другой способ?

Автор: Rennigth 2.11.2007, 17:11
zhefran, 
Хм..  smile  а так?
Код

  if Trim(str) = '' then
    memo.Text := 'Файл пуст'
  else
    memo.Text := str;

Автор: ivan219 2.11.2007, 17:17
Цитата(zhefran @  2.11.2007,  17:05 Найти цитируемый пост)
Как мне проверить пустая строка или нет?

Код

if St = '' then ....

Автор: zhefran 2.11.2007, 17:58
так - list index out of bounds (0);
Использую TStringList

Код

procedure TForm1.Button3Click(Sender: TObject);
var p:TStrings;
begin
p:=TStringList.Create;
p.LoadFromFile('c:\My.txt');
if trim(p.Strings[0])=''
then edit1.text:='empty' else edit1.text:=p.Strings[0];
p.Free;
end;


в таком случае trim покатит только тогда, когда перейти на следующую строку.

Автор: Rennigth 2.11.2007, 18:07
Код

var
  p: TStrings;
begin
  p := TStringList.Create;
  p.LoadFromFile('c:\My.txt');
  if Trim(p.Text) = '' then
    edit1.text := 'empty'
  else
    edit1.text := p.Text;
  p.Free;
end;

Автор: zhefran 2.11.2007, 18:27
Ivan219, та же самая ситуация и у тебя!

Добавлено через 4 минуты и 51 секунду
Спасибо вам! Ваши оба способы работают!

Автор: Rennigth 2.11.2007, 18:33
Цитата(zhefran @  2.11.2007,  18:27 Найти цитируемый пост)
Ivan219, та же самая ситуация и у тебя! 

Обманываешь небось... Где ошибка?

Добавлено через 52 секунды
Цитата(zhefran @  2.11.2007,  18:27 Найти цитируемый пост)
Спасибо вам! Ваши оба способы работают! 

smile

Автор: zhefran 2.11.2007, 18:36
Спасибо вам! Оба способы прекрасно работают!

ЗЫ. Извините это сообщение было отправлено по невнимательности!!! :(

Автор: ivan219 2.11.2007, 18:43
Цитата(zhefran @  2.11.2007,  18:27 Найти цитируемый пост)
Ivan219, та же самая ситуация и у тебя!

Враки если строка действительно пуста то всё  smile а вот если вней есть хоть что-то даже если ты этого не видишь или не знаешь то естественно не сработает.

Автор: zhefran 2.11.2007, 18:53
Ivan219, 
если брать p.Text, то работает! Если писать p.Strings[0], то нет! p.Strings[0] если я не ошибаюсь есть первой строкой в файле. Во втором случае выдает ошибку
Цитата

list index out of bounds (0);



Автор: stab 2.11.2007, 19:27
а что мешает проверить p.Count на ноль?

Автор: MetalFan 2.11.2007, 21:27
еще вариант:
Код

var
  lFS: TFileStream;
begin
  lFS := TFileStream.Create('C:\text.txt', fmOpenRead );
  if lFS.Size = 0 then
     Memo1.Text := 'empty'
  else
     Memo1.Lines.LoadFromStream( lFS );
  lFS.Free;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)