Стринг не работи!!!
6 отговора
277 прегледа
Стринг не работи!!!
Здравейте! Имам проблем,който незнам как да разреша! НЕ МОГА ДА КОПИРАМ СТРИНГ ЧРЕЗ ЦИКЪЛ!
Примерно!
var
E,D: String;
I: Integer;
begin
E := 'Text';
for I:=0 to Length(E) do
begin
D := D+E;
end;
result := D;
end;
Би трябвало да работи, ама не! Ако заменя при копирамето D := D+E; с D := E+D; тогава работи, но на обратно! Ако използвам DOWNTO работи.
И това не е било винаги така, ами просто изведнъж стана, че не мога да копирам стринг по този начин, а вчера си работеше!
Видял съм се в чудо, ако някой може да ми помогне, много ще се радвам!
Примерно!
var
E,D: String;
I: Integer;
begin
E := 'Text';
for I:=0 to Length(E) do
begin
D := D+E;
end;
result := D;
end;
Би трябвало да работи, ама не! Ако заменя при копирамето D := D+E; с D := E+D; тогава работи, но на обратно! Ако използвам DOWNTO работи.
И това не е било винаги така, ами просто изведнъж стана, че не мога да копирам стринг по този начин, а вчера си работеше!
Видял съм се в чудо, ако някой може да ми помогне, много ще се радвам!
Re: Стринг не работи!!!
Малка грешка допуснах! В цикъла се копира това:
D := D+E;
(горе не бях оказал )
Но проблема си е същия - не работи!
D := D+E;
(горе не бях оказал )
Но проблема си е същия - не работи!
Re: Стринг не работи!!!
ми няма да работи, естествено...
Е[0] навремето беше дължината, ама сега явно не е - съдържа #0, от там, при "копирането" получаваш D[1] = #0, поради което останалото (D[2] до D[5]) се игнорира - NULL Terminated стринг, едно такова нещо :-)))
ето ти функцията:
Е[0] навремето беше дължината, ама сега явно не е - съдържа #0, от там, при "копирането" получаваш D[1] = #0, поради което останалото (D[2] до D[5]) се игнорира - NULL Terminated стринг, едно такова нещо :-)))
ето ти функцията:
function copytxt : string;
var
E,D: String;
J: Integer;
begin
E := 'Text';
for J := 1 to Length(E) do begin
D := D + E[J];
end;
result := D;
end;
[/rpe]
--------------------------------------
Започва Път от моят праг...
Re: Стринг не работи!!!
Ама че съм глупав!
Побърках се да се чудя какво е, а въобще не обърнах внимание откъде започвам цикъла!
Благодаря много!
Побърках се да се чудя какво е, а въобще не обърнах внимание откъде започвам цикъла!
Благодаря много!
Edno utochnenie
Pri novite (golemite) nizove na Borland ima slednata podrobnost:
1. Niza zapochva na otmestvane 0
2. Na otmestvane -4 se namira daljinata na niza (4 bytes)
3. Na otmestvane -8 se namirat broia referencii kam niza (setete se zashto).
Ne pomnia samo dali ne sam razmenil mestata na 2 i 3.
Tuk stava duma za formata na nizovete na Borland. NULL-terminated strings sa neshto drugo.
Ako sam obarkal neshto se izviniavam predvaritelno, ama dolu-gore taka stoiat neshtata.
Uspeh!
1. Niza zapochva na otmestvane 0
2. Na otmestvane -4 se namira daljinata na niza (4 bytes)
3. Na otmestvane -8 se namirat broia referencii kam niza (setete se zashto).
Ne pomnia samo dali ne sam razmenil mestata na 2 i 3.
Tuk stava duma za formata na nizovete na Borland. NULL-terminated strings sa neshto drugo.
Ako sam obarkal neshto se izviniavam predvaritelno, ama dolu-gore taka stoiat neshtata.
Uspeh!
Re: Стринг не работи!!!
takowata....
------------------------------
I got a COMPILER, and I'm not afraid to use it!
function copytxt : string;
var
E,D: String;
J: Integer;
begin
E := 'Text';
D := '';
for J := 1 to Length(E) do begin
D := D + E[J];
end;
result := D;
end;
------------------------------
I got a COMPILER, and I'm not afraid to use it!
Re: Стринг не работи!!!
естествено :-)))))
--------------------------------------
Започва Път от моят праг...
--------------------------------------
Започва Път от моят праг...