forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Основной форум (http://forum.boolean.name/forumdisplay.php?f=49)
-   -   убавлять сиволы (http://forum.boolean.name/showthread.php?t=7491)

temned 23.12.2008 17:42

убавлять сиволы
 
У мя есть текст, s1:=copy(vopros[m],0,dlina2/2);
Как вы видите, s=взять символы из другой строки от 0до середины, другая строка равно например vopros[m]:='Программирование на MP';
Как мне сделать так, чтобы s равнялась от начала до пробела, т.е чтоб например было не 'Программирова' , а 'Программирование' . Может как-то надо убавлять символы до тех пор , пока... Незна.ю помогите

beZ_probleM 23.12.2008 18:12

Ответ: убавлять сиволы
 
PHP код:

i:=0;    // не обизательно обнулять
Str:=''// не обезательно очищать
getChar(s,i);
i:=i+1;
while 
i<>' ' do     // пока і не равно "ПРОБЕЛ"
   
begin
      str
:=str+getChar(s,i);
      
i:=i+1;
   
end


ViNT 23.12.2008 18:23

Ответ: убавлять сиволы
 
Все гораздо проще: s:=copy(0,pos(' ',vopros[1])-1,vopros[1]). Примерно так, может где-то на один символ ошибся, т.е. надо добавить/отнять единицу.

beZ_probleM 23.12.2008 18:45

Ответ: убавлять сиволы
 
так правельнее :

Цитата:

s:=copy(vopros[1],0,pos(vopros[1],' ')-1)

temned 24.12.2008 15:29

Ответ: убавлять сиволы
 
спасибо, я почти так и думал

temned 24.12.2008 15:44

Ответ: убавлять сиволы
 
beZ_probleM, в твоем коде while i<>' ' do , но i же integer? код не работает
или подскажите как pos(vopros[m],' '); и вообще как вернуть не первое, а например третье сопадение с помощью pos??

Romanzes 24.12.2008 16:23

Ответ: убавлять сиволы
 
Вот код, который ищет 10-е появление строки fragm в строке s.
Код:

  str:=s;
  for i:=1 to 10 do
  begin
    n:=Pos(s1,fragm);
    str:=Copy(str,Pos(str,fragm)+length(fragm),length(str));
  end;


temned 24.12.2008 19:12

Ответ: убавлять сиволы
 
pos(vopros[m],' '); как вернуть не первое, а например третье сопадение с помощью pos??

ViNT 24.12.2008 19:35

Ответ: убавлять сиволы
 
Цитата:

Сообщение от TEMNED (Сообщение 92713)
pos(vopros[m],' '); как вернуть не первое, а например третье сопадение с помощью pos??

С помощью pos нельзя, если только удалять фрагмент строки до предыдущего совпадения и после этого использовать pos, а так - только перебором всей строки в цикле.

beZ_probleM 24.12.2008 20:13

Ответ: убавлять сиволы
 
Код который находит третий пробел и соответственно его номер
PHP код:

i:=0j:=0// не обизательно обнулять 
Str:='';      // не обезательно очищать 
getChar(s,i); 
i:=i+1
repeat
while i<>' ' do     // пока і не равно "ПРОБЕЛ" 
   
begin 
      str
:=str+getChar(s,i); 
      
i:=i+1
   
end;
j:=j+1;
until j=3


temned 24.12.2008 20:30

Ответ: убавлять сиволы
 
i integer, как он может быть равен <>''? Vint обьясни свои вариант на примере

beZ_probleM 24.12.2008 20:38

Ответ: убавлять сиволы
 
сорри извеняюсь) действительно ступил))) Ы
прост пишу с головы) на практике не реализовую
Цитата:

while getChar(s,i)<>' ' do

beZ_probleM 24.12.2008 20:51

Ответ: убавлять сиволы
 
вот с помощью рos

PHP код:

s2:=vopros[1];
repeat
   s
:=copy(s2,0,pos(s2,' ')-1);
   
s1:=s1+s;   // строка из слов которые находятсо до пробелов
   
s2:=copy(s2,pos(s2,' '),length(s2)-1);
i:=i+1;
until i=3//количество пробелов 


temned 04.01.2009 20:22

фигня+
 
у мя такая фигня возникла. Имеется массив из 16строк, строки загружаются из rms. делаю футбольный менеджер, и строка имеет формат: 'Робинье/10\bra', где есть имя/номер\страна.
мне надо так:
name[i]:=copy(0,затем pos, из g[i], до тех пор пока не найдет /)
но поему не полушается, в шом проблема?

Piligrim 04.01.2009 22:30

Ответ: убавлять сиволы
 
Цитата:

затем pos, из g[i], до тех пор пока не найдет /
непонятно


Часовой пояс GMT +4, время: 01:22.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot