‘орум программистов, компьютерный форум, киберфорум
Ќаши страницы
PascalABC.NET
¬ойти
–егистраци€
¬осстановить пароль
 
 
–ейтинг 4.50/12: –ейтинг темы: голосов - 12, средн€€ оценка - 4.50
Aizen Sousuke
0 / 0 / 0
–егистраци€: 24.08.2018
—ообщений: 12
1

 ак уменьшить длину строки в PascalABC.NET?

16.09.2018, 18:56. ѕросмотров 2304. ќтветов 20

ƒело в том, что у мен€ есть консольное приложение, а в нЄм нужно вводить данные в рамочку из символов. –амочка у мен€ обладает определенной длинной, и когда € ввожу число, которое больше значени€ длины рамки, то число уходит за рамку. ¬от так это выгл€дит: |22222(|)22 (—имвол в скобочках мен€етс€ на двойку и выгл€дит это так: |2222222). „исло 22222 не выходит за рамки, а 2222222 - выходит. “о есть мне нужно помен€ть диапазон строки на 0 ... 5. Ёто возможно?
0
Ќадоела реклама? «арегистрируйтесь и она исчезнет полностью.
Similar
Ёксперт
41792 / 34177 / 6122
–егистраци€: 12.04.2006
—ообщений: 57,940
16.09.2018, 18:56
ќтветы с готовыми решени€ми:

ѕреобразование кода из C в PascalABC.NET (символы и строки)
«дравствуйте, помогите пожалуйста преобразовать этот код из C в PascalABC.NET. «адание. ...

¬ чем разница PascalABC.net и PascalABC
—кажите в чем разница PascalABC.net » PascalABC. ѕомню когда-то давно программы работающие в...

 ак пользоватьс€ интернетом в PascalABC.Net?
—тоит задача создать мини-чат с консольным интерфейсом.

 ак написать сервер на PascalABc.net?
’очу написать чат на базе PascalABC.net, но не знаю, как написать сервер. ѕозже скорее всего напишу...

 ак подключить dll в PascalABC.NET ?
MyDll.dll library MyDll; const PascalABCNET = 'PascalABC.NET'; type My = class ...

20
Sun Serega
138 / 90 / 45
–егистраци€: 07.04.2017
—ообщений: 380
16.09.2018, 19:25 2
Pascal
1
2
3
4
5
6
begin
  var s := ReadlnString;
  var max_len := 4;
  s := Copy(s, 0, max_len);
  writeln(s);
end.
1
—околиный глаз
C#
224 / 164 / 113
–егистраци€: 25.07.2014
—ообщений: 3,127
«аписей в блоге: 10
«авершенные тесты: 2
16.09.2018, 19:28 3
Sun Serega, а чо не срезами?
1
Sun Serega
138 / 90 / 45
–егистраци€: 07.04.2017
—ообщений: 380
16.09.2018, 19:58 4
÷итата —ообщение от —околиный глаз ѕосмотреть сообщение
срезами
SubString тогда лучше. Ќо и у сревзов и у SubString - если длина меньше max_len - получаем ошибку.
1
—околиный глаз
C#
224 / 164 / 113
–егистраци€: 25.07.2014
—ообщений: 3,127
«аписей в блоге: 10
«авершенные тесты: 2
16.09.2018, 20:00 5
Sun Serega, а безопасные срезы? ќни же есть.
1
Sun Serega
138 / 90 / 45
–егистраци€: 07.04.2017
—ообщений: 380
16.09.2018, 20:02 6
ќй, и правда...
Pascal
1
2
3
4
5
6
begin
  var s := ReadlnString;
  var max_len := 4;
  s := s?[1:1+max_len];
  writeln(s);
end.
Ќикогда раньше ими не пользовалс€))
1
—околиный глаз
C#
224 / 164 / 113
–егистраци€: 25.07.2014
—ообщений: 3,127
«аписей в блоге: 10
«авершенные тесты: 2
16.09.2018, 20:06 7
Sun Serega, € просто помню, что в справке это читал.
1
Aizen Sousuke
0 / 0 / 0
–егистраци€: 24.08.2018
—ообщений: 12
16.09.2018, 20:41  [“—] 8
я наверно неправильно выразилс€. ¬от мо€ программа:
Pascal
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
uses crt;
 
var
  s: string;
 
begin
  hidecursor;
  textbackground(0);
  clrscr;
  textcolor(15);
  gotoxy(3, 3);
  write('вФМ');
  for i: integer := 1 to 5 do write('вФА');
  write('вФР');
  gotoxy(3, 4);
  write('вФВ');
  gotoxy(9, 4);
  write('вФВ');
  gotoxy(3, 5);
  write('вФФ');
  for i: integer := 1 to 5 do write('вФА');
  write('вФШ');
  gotoxy(4, 4);
  showcursor;
  readln(s);
  hidecursor;
  gotoxy(3, 6);
  writeln(s);
  textcolor(0);
  readln;
  clrscr;
  readln;
end.
ѕопробуйте ввести что-нибудь более 5 символов, и вы увидите, что € имею в виду. ћне надо, чтобы вводилось максимум не 255 символов, а 5 символов.
0
Aizen Sousuke
0 / 0 / 0
–егистраци€: 24.08.2018
—ообщений: 12
16.09.2018, 20:45  [“—] 9
„то-то там плохо некоторые символы отображаютс€. ¬от скрин:
0
ћиниатюры
 ак уменьшить длину строки в PascalABC.NET?  
—околиный глаз
C#
224 / 164 / 113
–егистраци€: 25.07.2014
—ообщений: 3,127
«аписей в блоге: 10
«авершенные тесты: 2
16.09.2018, 20:48 10
Aizen Sousuke, а увеличить размер шрифта не пробовали?
1
Sun Serega
138 / 90 / 45
–егистраци€: 07.04.2017
—ообщений: 380
16.09.2018, 20:54 11
Ћучший ответ —ообщение было отмечено Aizen Sousuke как решение

–ешение

÷итата —ообщение от Aizen Sousuke ѕосмотреть сообщение
ввести что-нибудь более 5 символов, и вы увидите, что € имею в виду
ѕон€тно, ну, тогда - через "System.Console" читайте по 1 символу, и всЄ вручную обрабатывайте. Ёто ограничение из за остальных удобств readln
1
Aizen Sousuke
0 / 0 / 0
–егистраци€: 24.08.2018
—ообщений: 12
16.09.2018, 20:55  [“—] 12
“ак видно?)
0
ћиниатюры
 ак уменьшить длину строки в PascalABC.NET?    ак уменьшить длину строки в PascalABC.NET?  
Aizen Sousuke
0 / 0 / 0
–егистраци€: 24.08.2018
—ообщений: 12
16.09.2018, 20:59  [“—] 13
я не знаю как это через "System.Console" сделать, но сейчас попробую что-нибудь про это узнать. ≈сли не получитс€, то € потом напишу. —пасибо и удачи.)
0
—околиный глаз
C#
224 / 164 / 113
–егистраци€: 25.07.2014
—ообщений: 3,127
«аписей в блоге: 10
«авершенные тесты: 2
16.09.2018, 21:04 14
Aizen Sousuke, msdn в помощь, а также Ўилдт C# 4.0, может там что-нибудь по .Net найдЄте.
1
Sun Serega
138 / 90 / 45
–егистраци€: 07.04.2017
—ообщений: 380
16.09.2018, 21:05 15
¬от офф справка.

“ам дл€ C#, но на паскале так же работает:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
begin
  var s: string;
  var key: char;
  while true do
  begin
    key := System.Console.ReadKey.KeyChar;
    if word(key) = 13 then break;//это знак энтера
    s += key;
  end;
  writeln;
  writeln(s);
  readln;
end.
1
Aizen Sousuke
0 / 0 / 0
–егистраци€: 24.08.2018
—ообщений: 12
16.09.2018, 21:06  [“—] 16
Ћадно буду изучать.
0
—околиный глаз
C#
224 / 164 / 113
–егистраци€: 25.07.2014
—ообщений: 3,127
«аписей в блоге: 10
«авершенные тесты: 2
16.09.2018, 21:06 17
Ћучший ответ —ообщение было отмечено Aizen Sousuke как решение

–ешение

Aizen Sousuke, так как €зыки на .Net оба, то читайте литературу по .Net и примен€йте тут, даже если литература с примерами C# кода.

System.Console - класс дл€ организации ввода-вывода.
0
Aizen Sousuke
0 / 0 / 0
–егистраци€: 24.08.2018
—ообщений: 12
16.09.2018, 21:14  [“—] 18
—пасибо вам за советы!
0
—околиный глаз
C#
224 / 164 / 113
–егистраци€: 25.07.2014
—ообщений: 3,127
«аписей в блоге: 10
«авершенные тесты: 2
16.09.2018, 21:19 19
Sun Serega, насколько помню в ReadKey true передаете и нажатые клавиши не вывод€тс€.
1
xtro
19 / 16 / 5
–егистраци€: 10.06.2016
—ообщений: 82
17.09.2018, 11:45 20
Ћучший ответ —ообщение было отмечено Aizen Sousuke как решение

–ешение

Aizen Sousuke,так устроит?
Pascal
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
uses crt;
function ReadNChars(n:integer):string;
var
  c:char;
  i,x,y:integer;
  s:string;
begin
  s:='';
  for i:=1 to n do s:=s+' ';
  Result:='';
  (x,y):=(WhereX,WhereY);
  repeat
    i:=Length(Result);
    gotoxy(x,y);write(s);
    gotoxy(x,y);write(Result);
    gotoxy(x+i,y);
    c:=ReadKey;
    case c of 
      #8:delete(Result,i,1);
      #0:c:=ReadKey;
      #9,#13:;
      else if i<n then Result:=Result+c;
    end;
  until c=#13;  
end;
 
begin
  gotoxy(10,5);var s:=ReadNChars(4); //в позиции x=10 y=5 читаем 4 символа
  gotoxy(1,14);writeln('—читано:',s);// чуть ниже выводим результат
end.
0
17.09.2018, 11:45
MoreAnswers
Ёксперт
37091 / 29110 / 5898
–егистраци€: 17.06.2006
—ообщений: 43,301
17.09.2018, 11:45

 ак сделать реагирование будильник в PascalABC.Net?
—ами часы уже есть. Ќо надо, чтобы были и кнопки, которыми можно было бы добавить любое количество...

 ак создать трЄхмерную графику на PascalABC.NET?
 ак создать трЄхмерную графику на PascalABC.NET :scratch:

 ак из Visual Basic переделать на PascalABC.NET
Form1.ScaleMode = vbPixels Cls pi = 4 * Atn(1) scal = 15 r = 90 a = 0 * r...


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

»ли воспользуйтесь поиском по форуму:
20
ќтвет —оздать тему
ќпции темы

 ибер‘орум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
–ейтинг@Mail.ru