powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Подсчет строк в переменной String?
25 сообщений из 30, страница 1 из 2
Подсчет строк в переменной String?
    #39638852
FIL23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго дня.

Есть код вида

Код: pascal
1.
2.
3.
4.
5.
var
s:string;
begin
s:='string1'+#10#13+'string2';
end;



Как можно красиво подсчитать количество строк в переменной s?

Спасибо.
...
Рейтинг: 0 / 0
Подсчет строк в переменной String?
    #39638854
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FIL23, цикл не предлагать?
...
Рейтинг: 0 / 0
Подсчет строк в переменной String?
    #39638855
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TStringList
...
Рейтинг: 0 / 0
Подсчет строк в переменной String?
    #39638858
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBr, а еще красивее будет TMemo - стильно, модно, молодежно.
...
Рейтинг: 0 / 0
Подсчет строк в переменной String?
    #39638859
asviridenkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s.CountChar(#13)
...
Рейтинг: 0 / 0
Подсчет строк в переменной String?
    #39638874
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FIL23Доброго дня.

Есть код вида

Код: pascal
1.
2.
3.
4.
5.
var
s:string;
begin
s:='string1'+#10#13+'string2';
end;



Как можно красиво подсчитать количество строк в переменной s?

Спасибо.странный порядок, #10#13
...
Рейтинг: 0 / 0
Подсчет строк в переменной String?
    #39638890
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FIL23
Код: pascal
1.
s:='string1'+#10#13+'string2';


Как можно красиво подсчитать количество строк в переменной s?


Переменная S - у тебя строка. Отсюда (sic!) - в строке у тебя ровно ОДНА строка - зачем считать-то?-))))
...
Рейтинг: 0 / 0
Подсчет строк в переменной String?
    #39638897
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FIL23Как можно красиво подсчитать количество строк в переменной s?
Нужно считать кол-во символов.

Как в строке подсчитать количество строк?
...
Рейтинг: 0 / 0
Подсчет строк в переменной String?
    #39639036
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11Как в строке подсчитать количество строк?Великий и могучий русский язык. Ему нужно не count fo strings, а count of lines
...
Рейтинг: 0 / 0
Подсчет строк в переменной String?
    #39639049
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Function CharCount(S:String; Ch:Char):integer;
var i:integer;
begin
 Result:=0;
 i:=1;
 repeat
   i:=PosEx(Ch,S,i);
   if (i>0) then
      begin
        inc(Result);
        inc(i);
      end;
 until i<=0;
end;

S:='ABC'#13'CDE'#13'FGH';

ShowMessage('Line count in string is : '+IntToStr(CharCount(Trim(S),#13)));  
...
Рейтинг: 0 / 0
Подсчет строк в переменной String?
    #39639051
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем себя ограничивать char-ом?
...
Рейтинг: 0 / 0
Подсчет строк в переменной String?
    #39639053
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreatЗачем себя ограничивать char-ом?

А мне лень :)

P.S. PosEx() принимает string`и - у ТС есть свобода для творчества.
...
Рейтинг: 0 / 0
Подсчет строк в переменной String?
    #39639107
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMaster
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Function CharCount(S:String; Ch:Char):integer;
var i:integer;
begin
 Result:=0;
 i:=1;
 repeat
   i:=PosEx(Ch,S,i);
   if (i>0) then
      begin
        inc(Result);
        inc(i);
      end;
 until i<=0;
end;

Какая ужасная функция. Дима, уж тебе-то должно быть стыдно. :)
...
Рейтинг: 0 / 0
Подсчет строк в переменной String?
    #39639193
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам,

Открою тайну - я даже не знаю, работает оно или нет - писал прям тут, на коленке :) Но вроде должна работать.
...
Рейтинг: 0 / 0
Подсчет строк в переменной String?
    #39639200
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как-то так, не проверял. Должно работать с Win (#13#10) и Unix (#10) окончаниями строк. Последняя пустая строка считается.
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
function LineCount(const Str: string): Integer;
var
  PStr: PChar;
begin
  Result := 0;
  if Str = '' then Exit;
  Inc(Result);
  PStr = Pointer(Str);
  while PStr^ <> #0 do begin
    if PStr^ = #10 then Inc(Result);
    Inc(PStr);
  end;   
end;
...
Рейтинг: 0 / 0
Подсчет строк в переменной String?
    #39639210
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvp,

Код: pascal
1.
MyString:='This'#0#0#0#0'is'#13'my'#13'string';

?
...
Рейтинг: 0 / 0
Подсчет строк в переменной String?
    #39639215
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMaster,

Попробуйте свою строку в какое-нибудь Memo засунуть. По-факту, в windows символ #0 - это конец строки. Если вам надо двоичные данные с символами обрабатывать - это надо отдельно оговаривать в ТЗ.
PS: Для любителей извращений
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
function LineCount(const Str: string): Integer;
asm
  test  eax, eax
  jz    @@exit
  lea   ecx, [eax - 2]
  xor   eax, eax
@@found:
  inc   eax
@@loop:
  add   ecx, 2
  mov   dx, word ptr [ecx]
  cmp   dx, 10
  jz    @@found
  test  dx, dx
  jnz   @@loop
@@exit:
end;

...
Рейтинг: 0 / 0
Подсчет строк в переменной String?
    #39639217
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMaster> писал прям тут, на коленке :) Но вроде должна работать.

Я на это и надеялся, но даже для "пишу тут, прямо из головы" -
ужасно, мог бы и нормально написать, ИМХО. И речь вовсе не
о том, корректно она отрабатывает или нет (не проверял).
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Подсчет строк в переменной String?
    #39639244
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам,

Развожу руками - ну вот как-то вот так :)
...
Рейтинг: 0 / 0
Подсчет строк в переменной String?
    #39639251
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамЯ на это и надеялся, но даже для "пишу тут, прямо из головы" -
ужасно, мог бы и нормально написать, ИМХО.

Ну так продемонстрируй нам как выглядит твое ощущение прекрасного :)
...
Рейтинг: 0 / 0
Подсчет строк в переменной String?
    #39639253
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так выше же дали уже 2 варианта.
Достаточно одного цикла без Pos и пр.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Подсчет строк в переменной String?
    #39639294
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамДостаточно одного цикла без Pos и пр.
Pos будет удобен, если Ch - String а не Char (как и требует задача). Ну, еще inc(i, ChLen) нужно. Конечно, для оптимизации можно и тут циклом обойтись было.
А тебе - понятно, что глаза режет - отсутствие const перед S :)
...
Рейтинг: 0 / 0
Подсчет строк в переменной String?
    #39639295
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамНу так выше же дали уже 2 варианта.
Достаточно одного цикла без Pos и пр.


Кстати, подтверждаю - чтобы посчитать именно символы - достаточно 1 цикла и работать будет раза в 3 быстрее. Если разделитель строк тоже строка - придется таки использовать Pos/PosEx.
...
Рейтинг: 0 / 0
Подсчет строк в переменной String?
    #39639324
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMasterЕсли разделитель строк тоже строка - придется таки использовать Pos/PosEx.
Достаточно добавить вложенный цикл, который запускается при нахождении первого символа искомой строки.
...
Рейтинг: 0 / 0
Подсчет строк в переменной String?
    #39639424
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock> если Ch - String а не Char (как и требует задача).

С чего это вдруг?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Подсчет строк в переменной String?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]