TCH (statz) | #1, Főfasz (10443) |
1808 | #3ed0 | ^ | Idézet | Thu, 18 Aug 2016 21:49:26 +02 |
178.164.*.* | *.pool.digikabel.hu |
Azt tudod csinálni, hogy nem csinálsz ilyet. Azért van access violation, mert olyan helyre akarsz nyúlni, ami (még) nem a tiéd. Mielőtt írsz vagy olvasol a tömbből, kérdezd le a length() függvénnyel, hogy lehet-e: if (length(a) > 50) then begin a[50] = 'kecske'; end;Ha a hossza nagyobb, mint 50, akkor az azt jelenti, hogy minimum 51, azaz van 50. elem. (Értelemszerűen a 0-ról induló tömbök utolsó eleme a tömb hossza mínusz egy.) Ha hozzá akarsz adni egy új elemet, akkor a setlength() függvénnyel tudod megtenni: setlength(a, length(a) + 1); a[length(a) - 1] = 'kecske';Viszont itt nincs semmiféle insert függvény. Ha te a tstrings osztályról beszélsz, akkor ott hozzáfűzésnél az add() függvényt kell használni, az ad hozzá, az insert() az beszúr egy adott indexnél, ami ha nem létezik, az ugyanúgy access violation. ts.add('kecske');Az indexelés pedig ugyanúgy működik, mint a normál tömbnél: kérdezd le, hogy létezik-e az adott index a count tulajdonsággal. if (ts.count > 50) then begin ts.strings[50] = 'kecske'; end; Nem igaz. Linuxon egyáltalán nem kell parancssort basztatni. Csak lehet. A winfos parancssora viszont egy őskövület fos. Akar != kell. |
OrkenWhite alias "OrkenWhite az idióta" | #5, Főfasz (1004) |
98 | #3ed1 | ^ | Idézet | Fri, 19 Aug 2016 07:29:17 +02 |
84.0.*.* | *.dsl.pool.telekom.hu |
És ezzel pl. mi a baj?SetLength(result,2); Insert(strbuf,result[0],Length(result[0]); |
TCH (statz) | #1, Főfasz (10443) |
1068 | #3ed2 | ^ | Idézet | Fri, 19 Aug 2016 10:56:12 +02 |
178.164.*.* | *.pool.digikabel.hu |
Azon felül, hogy lehagytad a második zárójelet? :) Az, hogy ez az insert() nem stringtömbbe szúr be stringet, hanem stringbe. Te eddig stringtömbökről beszéltél. A setlength() ebben az esetben felesleges, már akkor, ha result egy string, mert úgy is felül fog íródni utána a hossz. És ez esetben felesleges (és hibás) indexelni a result-ot 0-val, mert az egy char és mindig 1 a hossza, tehát 1-nél fogja neked beszúrni a stringet, a célnál meg úgyis a 0. karakter a lényeg. insert(strbuf, result, Length(result));Viszont így konkrétan ennek nincs értelme, mert ez egy sima konkatenáció (két string összefűzése) és Pascalban ezt így is lehet: result := result + strbuf;Ha result egy array of string, akkor ennek működnie kell, csak éppen megint felesleges az insert(), mert: setlength(result, 2); result[0] := result[0] + strbuf;Mit szeretnél pontosan csinálni? Tudsz kódot mutatni? |
OrkenWhite alias "OrkenWhite az idióta" | #5, Főfasz (1004) |
1023 | #3ed3 | ^ | Idézet | Fri, 19 Aug 2016 11:31:27 +02 |
84.0.*.* | *.dsl.pool.telekom.hu |
Persze(rövidítve): interface //Nem lényeges kód volt itt(uses) type BGAFCNames = Array of string; function getGuestbookNames: BGAFCNames; //Nem lényeges kód volt itt(uses) function getGuestbookNames: BGAFCNames; var kutakodj: TStringList; keressmeg: integer; strbuf: string; arcount: integer; begin keressmeg := 0; arcount := 0; kutakodj := TStringList.Create; SetLength(result,1); //Próbáltam nagyobb számot is HttpGetText('http://bgafc.t-hosting.hu/bvk.php',kutakodj); repeat //Nem lényeges kód itt repeat strbuf := Copy(kutakodj.Text,keressmeg,1); // Char esetén a compiler reklamál keressmeg := keressmeg + 1; result[arcount] := result[arcount] + strbuf; //Itt van Access Violation until charbuf = '<'; // Nem lényeges kód volt itt writeln(result[arcount]); arcount := arcount + 1; SetLength(result,arcount); until keressmeg = 0; kutakodj.Free; end; |
TCH (statz) | #1, Főfasz (10443) |
285 | #3ed4 | ^ | Idézet | Fri, 19 Aug 2016 13:59:58 +02 |
178.164.*.* | *.pool.digikabel.hu |
Légy szíves az egész kódot posztold be, nem biztos, hogy nem lényeges, ami a lekérés után van. De egyébként ahol access violation van, ott kb. az lehet, hogy az arcount-ban túl nagy érték van. Szúrd be elé, hogy writeln(arcount); writeln(length(result));Mit ír ki? |
OrkenWhite alias "OrkenWhite az idióta" | #5, Főfasz (1004) |
512 | #3ed5 | ^ | Idézet | Fri, 19 Aug 2016 15:55:10 +02 |
78.92.*.* | *.dsl.pool.telekom.hu |
A lekérés utáni részlet:keressmeg := PosEx('mailto',kutakodj.Text,keressmeg); keressmeg := keressmeg + 9; Output: 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 |
OrkenWhite alias "OrkenWhite az idióta" | #5, Főfasz (1004) |
59 | #3ed6 | ^ | Idézet | Fri, 19 Aug 2016 15:58:25 +02 |
78.92.*.* | *.dsl.pool.telekom.hu |
Egy kicsit hozzú lett. Nyugodtan rövidítsd le, ha gondolod. |
OrkenWhite alias "OrkenWhite az idióta" | #5, Főfasz (1004) |
97 | #3ed7 | ^ | Idézet | Fri, 19 Aug 2016 16:01:52 +02 |
78.92.*.* | *.dsl.pool.telekom.hu |
A másik kihagyott részlet az egy Delete, a result[arcount]-ból töröl '<' karaktereket. |
TCH (statz) | #1, Főfasz (10443) |
463 | #3ed8 | ^ | Idézet | Fri, 19 Aug 2016 21:02:18 +02 |
92.249.*.* | *.pool.digikabel.hu |
Bepastelnéd az egészet légy szíves? Akkor kidebuggolnám mi a baja. Mert így kissé nehézkes. Egyelőre úgy néz ki, hogy nem az arcount indexe a baj. Talán az, hogy a copy() a strbuf-ba nil-t tett. Tegyél be astrbuf := Copy(kutakodj.Text,keressmeg,1);sor után egy ilyet: writeln(strbuf);Ha az is access violation lesz, akkor nullpointer. |
TCH (statz) | #1, Főfasz (10443) |
204 | #3ed9 | ^ | Idézet | Fri, 19 Aug 2016 22:04:35 +02 |
92.249.*.* | *.pool.digikabel.hu |
http://www.phpclasses.org/blog/post/226-4-Reasons-Why-All-PHP-Frameworks-Suck.html Na, amikor már a PHP feltalálója is azt mondja, hogy a PHP keretrendszerek szarok; na, az bazdmeg, az a zsír. |
OrkenWhite alias "OrkenWhite az idióta" | #5, Főfasz (1004) |
44 | #3eda | ^ | Idézet | Fri, 19 Aug 2016 22:05:02 +02 |
78.92.*.* | *.dsl.pool.telekom.hu |
Majd hétfőn, ha hazajöttem, akkor feltöltöm. |
TCH (statz) | #1, Főfasz (10443) |
84 | #3edb | ^ | Idézet | Sat, 20 Aug 2016 14:18:48 +02 |
178.164.*.* | *.pool.digikabel.hu |
Bukkmark: https://specifications.freedesktop.org/wm-spec/wm-spec-1.3.html |
Ádám (statz) | #4, Főfasz (1815) |
49 | #3edc | ^ | Idézet | Sat, 20 Aug 2016 22:35:20 +02 |
89.133.*.* | *.catv.broadband.hu |
Win10 + UEFI + GPT = bazdmeg. Minden baja van... |
TCH (statz) | #1, Főfasz (10443) |
48 | #3edd | ^ | Idézet | Sat, 20 Aug 2016 23:20:12 +02 |
178.164.*.* | *.pool.digikabel.hu |
win10 + akármi = bazdmeg. Sőt, win10 = bazdmeg. |
TCH (statz) | #1, Főfasz (10443) |
72 | #3ede | ^ | Idézet | Sun, 21 Aug 2016 13:43:39 +02 |
178.164.*.* | *.pool.digikabel.hu |
Hehe. |
TCH (statz) | #1, Főfasz (10443) |
96 | #3edf | ^ | Idézet | Sun, 21 Aug 2016 14:17:54 +02 |
178.164.*.* | *.pool.digikabel.hu |
Nem hehe. |