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)

beZ_probleM 05.01.2009 03:05

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

PHP код:

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

или через copy :

PHP код:

k:=0;
while 
getChar(g[i],k)<>'/' do
    
k:=k+1;
name[i]:=copy(g[i],0,k-1); 


Piligrim 05.01.2009 13:42

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

name[i] := Copy(g[i], 0Pos(g[i], "/")); 


beZ_probleM 05.01.2009 16:24

Ответ: убавлять сиволы
 
помоему там минус единицу ещё нужно

PHP код:

name[i] := Copy(g[i], 0Pos(g[i], "/")-1); 

Для следующего слова

PHP код:

:=Copy(g[i], Pos(g[i], "/")+1Pos(g[i], "\")-1); 

и для последнего

PHP код:

:=Copy(g[i], Pos(g[i], "\")+1, length(g[i])-1); 


temned 06.01.2009 20:36

Ответ: убавлять сиволы
 
и на обед: а как потом мона будет редактировать? Это же не целая строка, а где-то середина? Например страну номер изменился?

Piligrim 06.01.2009 21:26

Ответ: убавлять сиволы
 
beZ_probleM, не внимательно читал справку. Copy и так вырезает на одну меньше :)
TEMNED, а по связнее можно? Редактировать исходную строку? Вырезаешь начало и объединяешь с новой страной.

beZ_probleM 06.01.2009 21:32

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

g[i]:=name[i]+'/'+номер+'\'+страна; 

если эти строки(g[i] - эти) нужно брать из хранилища записей и туда же их возвращать то лучше удалять ето хранилище и записывать все строки в него заново=)
удачи;)

beZ_probleM 06.01.2009 21:40

Ответ: убавлять сиволы
 
2 pilgrim
читал...
может ты нащёт pos а не copy говоришь?
потомучто copy :
Цитата:

справка:
function copy(str1: string; begin, end: integer): string;
Возвращает подстроку данной строки, начиная с позиции 'begin' и заканчивая позицией 'end'-1. Например, copy('MIDletPascal', 2, 5) возвратит 'Dle'.
а вот с роs сам не пойму шо она возращает))) -1 или простО)) от которого нужно отнимаТЬ))

Piligrim 06.01.2009 23:13

Ответ: убавлять сиволы
 
Pos возвращает позицию символа в строке. Позиция считается с нуля. А Copy вырезает по 'end-1', но тоже с нуля. И получается, что указав в Copy позицию '/' в результирующей строке мы его обрежем.
А -1 Pos возвращает если не нашла.

ViNT 06.01.2009 23:53

Ответ: убавлять сиволы
 
В подобных случаях я делаю примерно так:
создаю тип данных, в данном случае
PHP код:

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.


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

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