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

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

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

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

Ответ
 
Опции темы
Старый 05.01.2009, 03:05   #16
beZ_probleM
ПроЭктировщик
 
Регистрация: 31.03.2008
Сообщений: 134
Написано 8 полезных сообщений
(для 8 пользователей)
Ответ: убавлять сиволы

если g[i] ето у тебя строка параметров типа етой "имя/номер\страна" то твой ответ вот :

k:=0;
name[i]:='';
while 
getChar(g[i],k)<>'/' do     // пока і не равно "/"  
   
begin  
      name
[i]:=name[i]+getChar(g[i],k);  
      
k:=k+1;  
   
end
или через copy :

k:=0;
while 
getChar(g[i],k)<>'/' do
    
k:=k+1;
name[i]:=copy(g[i],0,k-1); 
(Offline)
 
Ответить с цитированием
Старый 05.01.2009, 13:42   #17
Piligrim
Оптимист
 
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений
(для 259 пользователей)
Ответ: убавлять сиволы

а чем вас не устраивает тогда
name[i] := Copy(g[i], 0Pos(g[i], "/")); 
(Offline)
 
Ответить с цитированием
Старый 05.01.2009, 16:24   #18
beZ_probleM
ПроЭктировщик
 
Регистрация: 31.03.2008
Сообщений: 134
Написано 8 полезных сообщений
(для 8 пользователей)
Ответ: убавлять сиволы

помоему там минус единицу ещё нужно

name[i] := Copy(g[i], 0Pos(g[i], "/")-1); 
Для следующего слова

:=Copy(g[i], Pos(g[i], "/")+1Pos(g[i], "\")-1); 
и для последнего

:=Copy(g[i], Pos(g[i], "\")+1, length(g[i])-1); 
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
temned (06.01.2009)
Старый 06.01.2009, 20:36   #19
temned
Знающий
 
Аватар для temned
 
Регистрация: 29.07.2008
Адрес: Россия,Саратов
Сообщений: 206
Написано 22 полезных сообщений
(для 33 пользователей)
Ответ: убавлять сиволы

и на обед: а как потом мона будет редактировать? Это же не целая строка, а где-то середина? Например страну номер изменился?
(Offline)
 
Ответить с цитированием
Старый 06.01.2009, 21:26   #20
Piligrim
Оптимист
 
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений
(для 259 пользователей)
Ответ: убавлять сиволы

beZ_probleM, не внимательно читал справку. Copy и так вырезает на одну меньше
TEMNED, а по связнее можно? Редактировать исходную строку? Вырезаешь начало и объединяешь с новой страной.
(Offline)
 
Ответить с цитированием
Старый 06.01.2009, 21:32   #21
beZ_probleM
ПроЭктировщик
 
Регистрация: 31.03.2008
Сообщений: 134
Написано 8 полезных сообщений
(для 8 пользователей)
Ответ: убавлять сиволы

g[i]:=name[i]+'/'+номер+'\'+страна; 
если эти строки(g[i] - эти) нужно брать из хранилища записей и туда же их возвращать то лучше удалять ето хранилище и записывать все строки в него заново=)
удачи
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
temned (06.01.2009)
Старый 06.01.2009, 21:40   #22
beZ_probleM
ПроЭктировщик
 
Регистрация: 31.03.2008
Сообщений: 134
Написано 8 полезных сообщений
(для 8 пользователей)
Ответ: убавлять сиволы

2 pilgrim
читал...
может ты нащёт pos а не copy говоришь?
потомучто copy :
справка:
function copy(str1: string; begin, end: integer): string;
Возвращает подстроку данной строки, начиная с позиции 'begin' и заканчивая позицией 'end'-1. Например, copy('MIDletPascal', 2, 5) возвратит 'Dle'.
а вот с роs сам не пойму шо она возращает))) -1 или простО)) от которого нужно отнимаТЬ))
(Offline)
 
Ответить с цитированием
Старый 06.01.2009, 23:13   #23
Piligrim
Оптимист
 
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений
(для 259 пользователей)
Ответ: убавлять сиволы

Pos возвращает позицию символа в строке. Позиция считается с нуля. А Copy вырезает по 'end-1', но тоже с нуля. И получается, что указав в Copy позицию '/' в результирующей строке мы его обрежем.
А -1 Pos возвращает если не нашла.
(Offline)
 
Ответить с цитированием
Старый 06.01.2009, 23:53   #24
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: убавлять сиволы

В подобных случаях я делаю примерно так:
создаю тип данных, в данном случае
type
 rec
=record
 name
:string;
 
num:integer;
 
country:string;
end
дальше создаю две функции, типа
function read(s:string):rec;
function write(r:rec):string;

функция read разбивает строку на составляющие и возвращает уже
запись, содержащую нужные поля;
функция write наоборот, формирует строку на основе записи.
Дальше все просто - читаем строку, получаем из неё данные с помощью read, изменяем или просто читаем нужные поля, снова собираем строку на основе измененной записи с помощью write и записываем в rms.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
beZ_probleM (07.01.2009)
Ответ


Опции темы

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

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


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


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