Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > MidletPascal > Основной форум

Основной форум Сюда все проблемы связанные с программированием.

Ответ
 
Опции темы
Старый 23.12.2008, 17:42   #1
temned
Знающий
 
Аватар для temned
 
Регистрация: 29.07.2008
Адрес: Россия,Саратов
Сообщений: 206
Написано 22 полезных сообщений
(для 33 пользователей)
убавлять сиволы

У мя есть текст, s1:=copy(vopros[m],0,dlina2/2);
Как вы видите, s=взять символы из другой строки от 0до середины, другая строка равно например vopros[m]:='Программирование на MP';
Как мне сделать так, чтобы s равнялась от начала до пробела, т.е чтоб например было не 'Программирова' , а 'Программирование' . Может как-то надо убавлять символы до тех пор , пока... Незна.ю помогите
(Offline)
 
Ответить с цитированием
Старый 23.12.2008, 18:12   #2
beZ_probleM
ПроЭктировщик
 
Регистрация: 31.03.2008
Сообщений: 134
Написано 8 полезных сообщений
(для 8 пользователей)
Ответ: убавлять сиволы

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

Последний раз редактировалось beZ_probleM, 23.12.2008 в 18:40.
(Offline)
 
Ответить с цитированием
Старый 23.12.2008, 18:23   #3
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: убавлять сиволы

Все гораздо проще: s:=copy(0,pos(' ',vopros[1])-1,vopros[1]). Примерно так, может где-то на один символ ошибся, т.е. надо добавить/отнять единицу.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
temned (24.12.2008)
Старый 23.12.2008, 18:45   #4
beZ_probleM
ПроЭктировщик
 
Регистрация: 31.03.2008
Сообщений: 134
Написано 8 полезных сообщений
(для 8 пользователей)
Ответ: убавлять сиволы

так правельнее :

s:=copy(vopros[1],0,pos(vopros[1],' ')-1)
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
temned (24.12.2008)
Старый 24.12.2008, 15:29   #5
temned
Знающий
 
Аватар для temned
 
Регистрация: 29.07.2008
Адрес: Россия,Саратов
Сообщений: 206
Написано 22 полезных сообщений
(для 33 пользователей)
Ответ: убавлять сиволы

спасибо, я почти так и думал
(Offline)
 
Ответить с цитированием
Старый 24.12.2008, 15:44   #6
temned
Знающий
 
Аватар для temned
 
Регистрация: 29.07.2008
Адрес: Россия,Саратов
Сообщений: 206
Написано 22 полезных сообщений
(для 33 пользователей)
Ответ: убавлять сиволы

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

Последний раз редактировалось temned, 24.12.2008 в 16:12.
(Offline)
 
Ответить с цитированием
Старый 24.12.2008, 16:23   #7
Romanzes
Разработчик
 
Аватар для Romanzes
 
Регистрация: 06.04.2008
Сообщений: 541
Написано 196 полезных сообщений
(для 637 пользователей)
Ответ: убавлять сиволы

Вот код, который ищет 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;
(Offline)
 
Ответить с цитированием
Старый 24.12.2008, 19:12   #8
temned
Знающий
 
Аватар для temned
 
Регистрация: 29.07.2008
Адрес: Россия,Саратов
Сообщений: 206
Написано 22 полезных сообщений
(для 33 пользователей)
Ответ: убавлять сиволы

pos(vopros[m],' '); как вернуть не первое, а например третье сопадение с помощью pos??
(Offline)
 
Ответить с цитированием
Старый 24.12.2008, 19:35   #9
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: убавлять сиволы

Сообщение от TEMNED Посмотреть сообщение
pos(vopros[m],' '); как вернуть не первое, а например третье сопадение с помощью pos??
С помощью pos нельзя, если только удалять фрагмент строки до предыдущего совпадения и после этого использовать pos, а так - только перебором всей строки в цикле.
(Offline)
 
Ответить с цитированием
Старый 24.12.2008, 20:13   #10
beZ_probleM
ПроЭктировщик
 
Регистрация: 31.03.2008
Сообщений: 134
Написано 8 полезных сообщений
(для 8 пользователей)
Ответ: убавлять сиволы

Код который находит третий пробел и соответственно его номер
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
(Offline)
 
Ответить с цитированием
Старый 24.12.2008, 20:30   #11
temned
Знающий
 
Аватар для temned
 
Регистрация: 29.07.2008
Адрес: Россия,Саратов
Сообщений: 206
Написано 22 полезных сообщений
(для 33 пользователей)
Ответ: убавлять сиволы

i integer, как он может быть равен <>''? Vint обьясни свои вариант на примере
(Offline)
 
Ответить с цитированием
Старый 24.12.2008, 20:38   #12
beZ_probleM
ПроЭктировщик
 
Регистрация: 31.03.2008
Сообщений: 134
Написано 8 полезных сообщений
(для 8 пользователей)
Ответ: убавлять сиволы

сорри извеняюсь) действительно ступил))) Ы
прост пишу с головы) на практике не реализовую
while getChar(s,i)<>' ' do
(Offline)
 
Ответить с цитированием
Старый 24.12.2008, 20:51   #13
beZ_probleM
ПроЭктировщик
 
Регистрация: 31.03.2008
Сообщений: 134
Написано 8 полезных сообщений
(для 8 пользователей)
Ответ: убавлять сиволы

вот с помощью рos

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//количество пробелов 

Последний раз редактировалось beZ_probleM, 25.12.2008 в 01:49.
(Offline)
 
Ответить с цитированием
Старый 04.01.2009, 20:22   #14
temned
Знающий
 
Аватар для temned
 
Регистрация: 29.07.2008
Адрес: Россия,Саратов
Сообщений: 206
Написано 22 полезных сообщений
(для 33 пользователей)
фигня+

у мя такая фигня возникла. Имеется массив из 16строк, строки загружаются из rms. делаю футбольный менеджер, и строка имеет формат: 'Робинье/10\bra', где есть имя/номер\страна.
мне надо так:
name[i]:=copy(0,затем pos, из g[i], до тех пор пока не найдет /)
но поему не полушается, в шом проблема?
(Offline)
 
Ответить с цитированием
Старый 04.01.2009, 22:30   #15
Piligrim
Оптимист
 
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений
(для 259 пользователей)
Ответ: убавлять сиволы

затем pos, из g[i], до тех пор пока не найдет /
непонятно
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com