Hogyan tudom osztani egy stringet a karakterek

Van egy string változó van osztva karakter?

F1 String típusú

Akkor azonnal obraschatsya minden charset érték string [i], de akkor zatosovat egy tömbben, bár a húr - ez egy tömb karakter!

i: = 0 string.length do
kezdődik
a [i]: = string [i];
vég

> Sens
Talán nem eredményezheti a kódot, ahol nincs értelme, és a hiba nagyobb, mint a sorok?

eljárás TForm1.Button1Click (Sender: TObject);
var
M: tömb Char;
I: Byte;
S: String;
kezdődik
Szöveg: = "";
S: = Edit1.text;
SetLength (M, Hossz (S));
Mert: = 1-től hossz (ke) t
kezdődik
M [I]: = S [I];
Text: = szöveg + "Char #" + IntToStr (I) + "=" + M [I] + "";
végén;
Szöveg: = Szöveg + „Lehet ez ilyen egyszerű.”
végén;

A dinamikus tömb, mint a semmi köze, annak végrehajtása hiba van!

TSymbolicStringToCharCoolParser = Osztály (TInterfacedObject)
Eljárás GetStringAndSplitOntoSeparateCharsASAP ();

progressBar1.min: = 1;
progressBar1.max: = hossz (str);
progressBar1.position: = 1;
i: = Low (egész), hogy a magas (integer) kezdődik
ha én<1 then label1.caption:="Ничего не делаем, отдыхаем"
else if iprogressbar1.position: = i;
Label1.Caption: = inttostr (i) + "- az első karakterkészlet érték - a" + str [i];
végén pedig Label1.Caption: = „volt időm olvasni?”
végén;

var
S: String;
C: Char;

Vegye olló és razreshte darabokra a húr!

Tény, hogy a vonal - egy sor karakter. Azaz, a következő változók.
var
S1: string;
s2: array [0..255] char;
. egyenlő lesz.

Ahhoz, hogy utal egy egyetlen karakterlánc, használja az alábbi szerkezetet (példa):
S1 [2] - 2-kezelés a szimbólum sor.

Engedjék meg, hogy gratuláljak Rouse_ c hozzátéve, hogy a gyűjtemény


> Sprashivayuschiy_ (19.12.03 9,22) [4, 5]

Akkor ezzel sürgősen tennie kell valamit. (

Itt van egy másik remek módszer :)

eljárás TForm1.Button1Click (Sender: TObject);
var
str: string;
symstr: pchar;
i: integer;
típus
PStrRec = ^ StrRec;
StrRec = csomagolt rekord
refCnt: ​​Longint;
hossza: Longint;
végén;
const
ferdeség = sizeof (StrRec);
SEPARATOR = CHR ($ 20);
funkció strlen (const s: AnsiString): Longint;
asm
TEST EAX, EAX
JE @@ done
MOV EAX, [EAX-ferdeségi] .StrRec.length;
@@ tenni:
végén;
kezdődik
str: = „Van egy string változó van osztva karakter?”;

Valamilyen oknál fogva, eszembe jutott egy kérdés. Hogyan kell mondani?

1) egy reprezentatív, széles körben elterjedt a Földön, artiodactyla egység végrehajtja a folyamatot, hogy megfeleljen az igényeinek a szervezet vízben, létrehozásával alacsony nyomást a szájban, és szívó ki a hengeres alak a téma, sugara nagyobb, mint a kerülete a pofa.

2) A ló iszik egy vödör.

Azt is aggódik ezt a problémát. Elmentem egy profi Delphi, és ő adott nekem egy csodálatos vételi funkciója n-edik karaktere a húr. A funkció hibátlanul működik, és gyorsan. Köszönöm, hogy vannak ilyen jó emberek.

funkció GetSimbolN (N: integer; const S: string): char;
<
N - a szám a szimbólum is, amely kell beszerezni;
S - ugyanaz húr, hogy a szimbólum.
>
var i, n: egész szám;
b: Boole;
kezdődik
i: = 0 és n * (hossza (s) +1) do
kezdődik
b: = False;

ha (i 1), majd
b: = Logikai (Egész szám (True) * 117);

ha (i> n) és (cos (i * Pi) <-1) then begin
b: = Logikai (Egész szám (hamis) * 117);
Eredmény: = GetSimbolN (i-2, s);
végén;

ha (i = n) és (sin (123 * i-n) <= 1) then
b: = True;

ha b = true akkor
ha (n> 0) és (N Eredmény: = s [(32 div 8) * 1 - 8 + i];

ha b = False majd
Folytatás
végén;
végén;

És itt van a bontást a teljes vonalon. Én magam is sejtettem!


var
N, i: integer;
karakter: tömb char;

kezdődik
n: = Magas (s) +1;
SetLength (karakter, n);
i: = 1-től n-do
kezdődik
chars [i-1]: = GetSimbolN (i, s);
végén;
végén;

Ha kérdése van, kérjük lépjen kapcsolatba. Segítek mindenkinek!

Üdvözlettel
Evlampiya Nikiforovna.

Sajnáljuk hiba
Szükség van itt
Eredmény: = s [(32 div 4) * 1 - 8 + i];
Ellenkező esetben nem ad, amire szükségünk van!

> Evlampiya Nikiforovna
De nem szerencse napsiat alatt a beceneve?

Írok be a becenevét, akkor nem lett volna ezt a kérdést, és én nem tudom, hogy érdekel. )))

By the way, Evlampiya - az is, hogy Lipa :))

És hogyan lehetne írom alá a saját
Íme olyan hülye vicc?
Vonakodás elrontani a drága becenevet. -))
Hülye mindig séta az azonos maszkot.
Csak. Különösen az interneten.


> [25] Evlampiya Nikiforovna (12/20/03 20:38)
> Mellesleg Evlampiya - az is, hogy Lipa :))

Kíváncsi vagyok, ki is vagy valójában. )


> Evlampiya Nikiforovna (12/20/03 18,36) [21]

ez a hatalmas szöveget, és az eredmény ugyanaz, mit kell írni, figyelembe ugyanazon paraméterek neveit:


> Egy ilyen hatalmas szöveget, és az eredmény ugyanaz, mit kell írni,
> Figyelembe ugyanaz a paraméter neveket:

Általában ez egy vicc

Ez egy vicc?
Dolgoztam egy héten ezt a problémát!
Jobban értem, mint te!
Kódom az optimális!

-) Kár, hogy az összes briliáns ötlet adtak hangot, és így akart valami „bot” ebben a láncban.
Általában eszembe jutott egy ág, hogyan lehet beolvasni port. Ez volt régen. De jó.

Tudom, hogy ki Evlampiya.

Linden (12/20/03 23:20) [35]
Diagnózis, vagy a kívánt nevet?

Evlampiya ennyire feszült valamit. -))) Én a szombati razobl # Cheny nem gyakorlat)

Természetesen a diagnózist.
Az ő neve nagyon jól tudom.

publicnyh a shmyshle

Aspeysiba, nem tudom.

Gyanús saytik. Tedd egoy a kemencébe.

z.Evgen (19.12.03 08:45)
Van egy string változó van osztva karakter?

Osztjuk ketté!
Először osztjuk kódhosszt div 2 előtt és után a hossza div 2, akkor rekurzívan hívja ezt az eljárást minden fél. És így, amíg csak egy karaktert. Ez a helyes, és a meredek megközelítés. Mivel minden a megfelelő módszereket használja kettéosztott a szegmens, és az összes a hűvös technikák alkalmazásával rekurzív hívások.
Ezen túlmenően, amikor a vulgáris és triviális döntés, amit kellett volna foglalni egy erőforrás egy változó egy hurok:

Rekurzív hívás, hogy lehetővé tegye, hogy elkerülje, és ezért ment egy legalább 4 byte memóriát elkülöníteni erre a változóra.
És akkor nem kell gondolkodni a hosszú ez a változó! És a vonal hosszát is!
IMHO, a végrehajtás egy rekurzív hívás a legsokoldalúbb, mivel még az átmenet Win64 platform, Win128 Win256 és a forráskód nem kell változtatni.
Vannak objektum-orientált programozási nyelvek, amelyeken nincsenek ciklusok, és mindent elkövetnek a hívó rekurzív eljárások. Ahhoz, hogy a kód könnyebben lefordítják ezeket a nyelveket, ami miatt sokoldalú.


írja TStrArr = Array String;

függvény explode (szeptember: Boolean; Str: String): TStrArr;
var i, Len: egész;
S: String;
kezdődik
Eredmény: = nil;
Len: = hossz (Str);
ha nem szept ezután kezdődik
SetLength (Eredmény, Len);
i: = 1-től Len do kezdődik
Eredmény [i-1]: = Str [i];
végén;
end else if (szeptember és (Len> 0)) akkor kezdődik
S: = "";
i: = 2 Len do kezdődik
ha a (Str [i] = Str [1]), azután indítsa
SetLength (Eredmény, Hosszúság (Eredmény) 1);
Eredmény [Magas (Eredmény)]: = S;
S: = "";
end else if (i = Len) Ezután kezdődik
SetLength (Eredmény, Hosszúság (Eredmény) 1);
Eredmény [Magas (Eredmény)]: = S + Str [i];
véget mást S: = S + Str [i];
végén;
végén;
végén;

eljárás TForm1.Button1Click (Sender: TObject);
var A: TStrArr;
i: integer;
kezdődik
Memo1.Clear;
A: = explode (hamis, "Van egy string változó van osztva karakter?");
i: = 0 a hossza (A) -1 do Memo1.Lines.Append (A [i]);
A: = nil;
végén;

Nyolcbites korrigált bontása a szeparátor. Ez valamivel rövidebb :)
Azok számára, akik nem értik meg a kódot. Sep-azt jelzi, hogy az első karakter használható elválasztó, és megverte őt a sorban, ha hamis, a Str húr veri a karaktereket.

Mi az? Hogyan lehet kopott, így egy csomó ember, és hogyan. így senkit. (


> Mi az? Hogyan lehet kopott, így egy csomó ember, és hogyan. így valaki?
> :(

A trükk az, hogy a verés pihentető, és mikor kell írni a kódot úgy gondolja, jobban tud mászni a befejezetlen projekt, és hogy valami hasznos, mint hogy egy szórakoztató, de általában nem kívánatos tanácsadás

Ennyi. Érdemes kérni egy komoly kérdés, hogy a dolgok kezdenek figyelmen kívül hagyja. A kopott -, akkor egész nyájra, mint a legyek, hogy. méz. Kíváncsi, hogyan is érzi magát, mint az ólom ilyen hosszú kódok, arra is szükség van, hogy írjon az első. Sőt, abból a célból, egyszerűen poprikalyvatsya

Tudom megfogalmazni kérdéseiket megfelelően. Szükséges lesz, hogy megpróbálja egy tárgy. Aztán egy csomó választ lesz. (Igaz használhatatlan) :-(

Memória: 0,82 MB
Idő: 0,07 c

Kapcsolódó cikkek