Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  C# mdb-ga ühendamine märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
mine lehele 1, 2  järgmine
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale. Teata moderaatorile
otsing:  
Miccer
HV Guru
Miccer

liitunud: 01.08.2004



Autoriseeritud ID-kaardiga Online

sõnum 23.08.2017 19:44:38 C# mdb-ga ühendamine vasta tsitaadiga

Tarvis oleks vaja saada ühe ms access failiga ühendus.
Fail on parooliga ja parool sisaldab non printable sümboleid (igast enterid ja jne väljastamatud sümbolid).
Parool ise on olemas HEX kujul. Probleem seisneb selles, et ei õnnestu luua connectionStringi (sellist mis ka ära ühendaks).

Ainus ligilähedane teema mis googlest leidsin on see.
https://stackoverflow.com/questions/29428692/using-non-ascii-characters-in-connection-string-password

Kui keegi valdab C# vähe kodusemalt siis äkki õnnestub probleem lahendada.
Kommentaarid: 1478 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 1032
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
andresv
HV kasutaja

liitunud: 05.12.2004




sõnum 24.08.2017 19:25:19 vasta tsitaadiga

byte[] password = {0xCA, 0xFE, 0xBA, 0xBE, ....};

ja siis googlelda kuidas sellest byte arrayst string saada või muu sobiv andmetüüp.
Kommentaarid: 5 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 5
tagasi üles
vaata kasutaja infot saada privaatsõnum
Miccer
HV Guru
Miccer

liitunud: 01.08.2004



Autoriseeritud ID-kaardiga Online

sõnum 24.08.2017 23:05:04 vasta tsitaadiga

andresv, seda lahendust juba proovitud ja muude sümbolitega toimib aga 0x00 annab errori :/
Kommentaarid: 1478 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 1032
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
kalvis
Kreisi kasutaja

liitunud: 20.10.2009




sõnum 25.08.2017 10:31:05 vasta tsitaadiga

Ma ise olen kasutanud lihtsamat viisi C-s stringile sisestamisel *string=0x6500 (numbrid on valitud ascii kood, seejuures tuleb arvestada little endianiga!!)või siis *string='abcd\0', seejuures erimärkidega saab ka muid koode sisestada
tagasi üles
vaata kasutaja infot saada privaatsõnum
Miccer
HV Guru
Miccer

liitunud: 01.08.2004



Autoriseeritud ID-kaardiga Online

sõnum 28.08.2017 09:40:21 vasta tsitaadiga

kalvis kirjutas:
Ma ise olen kasutanud lihtsamat viisi C-s stringile sisestamisel *string=0x6500 (numbrid on valitud ascii kood, seejuures tuleb arvestada little endianiga!!)või siis *string='abcd\0', seejuures erimärkidega saab ka muid koode sisestada


string pasw ="abcd\0";


See annab näiteks sama veateate. Ehk hetkel ei taha õnnestuda nulli kasutamine icon_rolleyes.gif
Kommentaarid: 1478 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 1032
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
kalvis
Kreisi kasutaja

liitunud: 20.10.2009




sõnum 28.08.2017 12:15:00 vasta tsitaadiga

Võimalik, et tüübikontroll sekkub. Sel juhul tuleb tüübiviit sulgudes ette kirjutada. See nõuab väga täpselt teadmisi tüübiteisenduste kohta.
Mul C oli tükk tegu, et ühte tüüpi muutujatele saaks valest tüübist õieti väärtuseid anda (eriti soovisin stringe sedasi kiirelt väärtustada), eriti keeruline on stringidega. Seal on veel Little endian vaja ka arvesse võtta.
Kas stringil ikka mälu on olemas? Võibolla püüad ilma mäluta stringi väärtustada siis saab veateate pulli küll.
Võibolla alusta sellega, et parooli viida väärtustad konstant massiiviga kohe deklareerimisel siis alguses üritad printf käsuga välja printida ja kui vaja kasvõi ekraanile baidi kaupa, suurendades muutujat ühe võrra kuni null välja ilmub. Kui nüüd stringi väärtustamine on selge siis võid ka muid nippe juba kasutada.
tagasi üles
vaata kasutaja infot saada privaatsõnum
Miccer
HV Guru
Miccer

liitunud: 01.08.2004



Autoriseeritud ID-kaardiga Online

sõnum 14.09.2017 09:05:01 vasta tsitaadiga

kalvis kirjutas:
See nõuab väga täpselt teadmisi tüübiteisenduste kohta.


Kuna ise taipan asja kergelt käigupealt ja näidete baasil siis pole süvaõpinguteks aega.

Kas mõni mode saaks liigutada teema tööpakkumise alla. Äkki saame seal motivatsioonitasuga asja lahendada.
Kommentaarid: 1478 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 1032
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
napoleon
Unknown virus
napoleon

liitunud: 08.12.2008



Autoriseeritud ID-kaardiga

sõnum 16.09.2017 17:24:31 vasta tsitaadiga

Kas kõige lihtsam lahendus ei tule kõne alla ehk asendada see HEX kujul parool mõne ainult loetavaid märke sisaldava parooliga. 0x00 on üldiselt üks ebamugav sümbol, isegi kui keel ise nagu lubaks seda stringis kasutada, võib mõnel juhul mõni madalama taseme library sellest ikka valesti aru saada. Hint: klassikalise C/C++ puhul on 0x00 stringi lõpu sümboliks vähemalt siis kui andmetüübiks on tavaline char
Kommentaarid: 76 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 59
tagasi üles
vaata kasutaja infot saada privaatsõnum
Miccer
HV Guru
Miccer

liitunud: 01.08.2004



Autoriseeritud ID-kaardiga Online

sõnum 17.09.2017 14:30:53 vasta tsitaadiga

napoleon kirjutas:
Kas kõige lihtsam lahendus ei tule kõne alla ehk asendada see HEX kujul parool mõne ainult loetavaid märke sisaldava parooliga.


Mis lahendus selleks on? Parooli saab ju muuta või eemaldada alles siis kui ühendus loodud või fail avatud. Või on mõni muu moodus ka?
Kommentaarid: 1478 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 1032
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
napoleon
Unknown virus
napoleon

liitunud: 08.12.2008



Autoriseeritud ID-kaardiga

sõnum 17.09.2017 14:58:57 vasta tsitaadiga

Ma lihtsalt eeldasin, et kui kellelgi õnnestus selline parool panna, siis see keegi saab mingil moel faili avada ja parooli ära muuta. Või teine variant on googeldada ehk leiab mõne password reset tool'i, millega parooli maha saab võtta
Kommentaarid: 76 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 59
tagasi üles
vaata kasutaja infot saada privaatsõnum
Miccer
HV Guru
Miccer

liitunud: 01.08.2004



Autoriseeritud ID-kaardiga Online

sõnum 29.09.2017 11:08:05 vasta tsitaadiga

Need tavalised mdb taastajad ei saa sellega hakkama. Kõik läbi proovitud.

See ühenduse loomine ei ole võimatu tegevus. Sõber mulle aasta eest selle programmi juba kirjutas. Kõik toimis.
Aga kõvaketta hävimisega läks mul see kaduma ja ta ei suuda meenutada mis moodi ta selle tookord ära lahendas.
Nii siis sai siia pöördutud.

Teeni 100.- https://foorum.hinnavaatlus.ee/viewtopic.php?p=9609170#9609170
Kommentaarid: 1478 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 1032
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
lkallas
HV vaatleja

liitunud: 26.10.2017




sõnum 26.10.2017 18:12:17 vasta tsitaadiga

Miccer kirjutas:
Need tavalised mdb taastajad ei saa sellega hakkama. Kõik läbi proovitud.

See ühenduse loomine ei ole võimatu tegevus. Sõber mulle aasta eest selle programmi juba kirjutas. Kõik toimis.
Aga kõvaketta hävimisega läks mul see kaduma ja ta ei suuda meenutada mis moodi ta selle tookord ära lahendas.
Nii siis sai siia pöördutud.

Teeni 100.- https://foorum.hinnavaatlus.ee/viewtopic.php?p=9609170#9609170


Said lahendatud? Oled kindel, et see HEX on korrektne? Kust see algupäraselt saadud on?
Kui ei ole lahendatud siis ma võtaks väljakutse vastu.
Kommentaarid: 3 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 3
tagasi üles
vaata kasutaja infot saada privaatsõnum
Miccer
HV Guru
Miccer

liitunud: 01.08.2004



Autoriseeritud ID-kaardiga Online

sõnum 26.10.2017 18:50:03 vasta tsitaadiga

Hetkel jah sain tööpakkumise tibake teistmoodi lahenduse aga ka see sobis.

Hex peab olema õige, asi taandus suuresti selle 0x00 sümboli taha, et seda ei õnnestund kasutada.
Kommentaarid: 1478 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 1032
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
kalvis
Kreisi kasutaja

liitunud: 20.10.2009




sõnum 28.10.2017 08:43:00 vasta tsitaadiga

Seda nulli oleks saanud ju suht lihtsalt sisestada '/0' või siis kasutada mis iganes muul moel (mõned on juba pakutud)
vaata:
https://stackoverflow.com/questions/4711449/what-does-the-0-symbol-mean-in-a-c-string
tagasi üles
vaata kasutaja infot saada privaatsõnum
Miccer
HV Guru
Miccer

liitunud: 01.08.2004



Autoriseeritud ID-kaardiga Online

sõnum 28.10.2017 09:47:14 vasta tsitaadiga

Ei saanud ühtegi moodi kõik lõppesid sama erroriga.

Kell huvi võib ju proovida. Võid failile panna ka suvaka parooli, ja kui nulli edastamine veata läbi läheb siis vaataks isegi seda lahendust.
Suvaka parooli puhul saad siis lõpuks lihtsalt teate et parool on vale. Ja kui edastamine ei õnnestu siis arvatavasti sarnane veateade nagu kolmandas postis.
Kommentaarid: 1478 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 1032
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
kalvis
Kreisi kasutaja

liitunud: 20.10.2009




sõnum 31.10.2017 13:55:00 vasta tsitaadiga

Võtsin sportiklust huvist ja kirjutasin C (minGW) lihtsa testprogrammi

#include <stdio.h>
#include <stdlib.h>
char test[10];
int main()
{
printf("Hello world!\n");
//test[0]='a';
//test[1]='\n';
//test[1]=0;
*(int*) test=0x6665;
printf("string %s\n",test);

return 0;
}
Nii saab numbriga väärtustada stringi. Ka saab ükshaaval panna stringile nulli otsa nii \n kui otse nulliga väärtustades (võta koodis // eest ära). Pööra tähelepanu little endialile.
tagasi üles
vaata kasutaja infot saada privaatsõnum
napoleon
Unknown virus
napoleon

liitunud: 08.12.2008



Autoriseeritud ID-kaardiga

sõnum 31.10.2017 15:59:45 vasta tsitaadiga

C puhul tähistab 0x00 ju stringi lõppu, tõenäoliselt sellest tal kõik need jamad olidki, et isegi kui kõrgema taseme kiht seda tunnistab, võib mõni madalama taseme library ikka arvata, et selle koha peal saab string otsa.
Kommentaarid: 76 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 59
tagasi üles
vaata kasutaja infot saada privaatsõnum
kalvis
Kreisi kasutaja

liitunud: 20.10.2009




sõnum 01.11.2017 12:31:19 vasta tsitaadiga

Ei 0x6665 tähistab 16-ndsüsteemis arvu. Miks ma kirjutasin 16-ndsüsteemis on seepärast, et ascii tabelis on tähed antud ka 16-ndkoodis ja nii saab väga lihtsalt ja mugavalt stringe lennult kirjutada. Mõeldud on see tavaliselt lühivastuste puhuks kus näiteks "press Y or N" kirjutangi Y stringi otse ascii koodi numbriga ning kasutan otse numbrilist kontrolli N: if (*(int*) sisestatud==0x59) {//tee midagi mis on Y tähe vajutamise korral.}
Muidu tuleb C-s kasutada ikkagi stringide võrdlemisel funktsioonide abi aga nii saab otse koodis tavalist käsku kasutada. Ma kasutan tavaliselt int viita siis pole tüübiteisendust üldse vaja koodi kirjutada. Palju kasutan ka case võrdluses
Ka funktsiooni kasutades saab suht lihtsalt võrrelda - ühel pool on stringi viit ja teisel pool "misiganes"
tagasi üles
vaata kasutaja infot saada privaatsõnum
napoleon
Unknown virus
napoleon

liitunud: 08.12.2008



Autoriseeritud ID-kaardiga

sõnum 01.11.2017 12:45:00 vasta tsitaadiga

kalvis, ma hakkasin sellest nullist sellepärast jahuma, et algselt küsijal just sellega oligi probleem, et paroolis oli 0x00 ja sellist connection stringi ei võetud kuidagi omaks.
Kommentaarid: 76 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 59
tagasi üles
vaata kasutaja infot saada privaatsõnum
kalvis
Kreisi kasutaja

liitunud: 20.10.2009




sõnum 02.11.2017 14:35:21 vasta tsitaadiga

0x00 on tavaline null numbriliselt ja kui tead asukohta siis if (string[x]==0) saab alati kontrollida, sidurdada jne. Mu näites on kõik samaväärsed test[1]=0 kui ka test[1]='\0' on just samane väärtus 0x00.
C-s on 0 stringi lõpu tunnus.
tavaliselt on stringi tehteks päris kasulik tutvuda stringide funktsioonidega (mid, left, right, cmp jne.), mis on üldtuntud ja laialdasemalt kasutusel. On üks üsna hea stringi kopeerimise funktsioon, kus saad ära määrata millised erimärkidega stringi tükeldatakse, tavaliselt on nendeks siis punkt, koma, null ja tühik (või muud märgid). ja kopeerib teise stringi kuni erimärgini sisu. Nii saab lihtsa nipiga kätte just puhta stringi sisu.
tagasi üles
vaata kasutaja infot saada privaatsõnum
napoleon
Unknown virus
napoleon

liitunud: 08.12.2008



Autoriseeritud ID-kaardiga

sõnum 02.11.2017 15:22:49 vasta tsitaadiga

kalvis, loe teemaalgataja postitust, siis saad aru milles mure on. Mure on selles, et mingi keele enda library jonnib asja peale mitte selles, et oma koodis poleks võimalik neid nulle sinna saada või nende olemasolu kontrollida.
Kommentaarid: 76 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 59
tagasi üles
vaata kasutaja infot saada privaatsõnum
kalvis
Kreisi kasutaja

liitunud: 20.10.2009




sõnum 05.11.2017 11:52:33 vasta tsitaadiga

Ju ta pole viitsinud scannida algset soovitust tõmmata string char[x], x++ meetodil läbi ja trükkida kood ekraanile.
Tuleb defineerida stringi viit ja see väärtustada tema funktsioonist saadud andmetele. Ma sain aru, et tema funktsioonis oli probleemiks, see et string sisaldas nulli, mis peabki olema, kuid ta kasutas vale võrdlusfunktsiooni, mis ei osanud seda nulliga stringi võrrelda.
OK, loeme teema lõpetanuks, kuigi mul on kuri kahtlus, et teemaalgataja ei saanudki aru milles asi oli.
tagasi üles
vaata kasutaja infot saada privaatsõnum
DoS
HV veteran
DoS

liitunud: 18.08.2002




sõnum 05.11.2017 12:01:26 vasta tsitaadiga

Sulle on mitu korda juba öeldud, et sina oled see, kes asjast aru ei saa, aga ikka ajad oma jura.
Kommentaarid: 50 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 47
tagasi üles
vaata kasutaja infot saada privaatsõnum
napoleon
Unknown virus
napoleon

liitunud: 08.12.2008



Autoriseeritud ID-kaardiga

sõnum 05.11.2017 14:28:10 vasta tsitaadiga

kalvis kirjutas:
Ju ta pole viitsinud scannida algset soovitust tõmmata string char[x], x++ meetodil läbi ja trükkida kood ekraanile.
Tuleb defineerida stringi viit ja see väärtustada tema funktsioonist saadud andmetele. Ma sain aru, et tema funktsioonis oli probleemiks, see et string sisaldas nulli, mis peabki olema, kuid ta kasutas vale võrdlusfunktsiooni, mis ei osanud seda nulliga stringi võrrelda.
OK, loeme teema lõpetanuks, kuigi mul on kuri kahtlus, et teemaalgataja ei saanudki aru milles asi oli.


Puust ja punaselt - oletame et annan sulle ühe closed source library. Huvipakkuv funktsioon on seal näiteks selline:
int connect(char* parool,...);//ärme nüüd hakkame vaidlema, mis tüüpi parameetri see funktsioon tagastama peaks, see ei puutu teemasse
Palun selgita, kuidas sinu kirjeldatud meetodid aitavad sellele 0x00 sümbolit sisaldava parooli ette anda nii, e ta selle õigesti omaks võtaks. Teemaalgataja probleem ongi umbes selline st. tal pole vaja seda parooli mitte ekraanile trükkida ega millegagi võrrelda vaid mingile closed source library-le parameetrina ette anda.
Kommentaarid: 76 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 59
tagasi üles
vaata kasutaja infot saada privaatsõnum
kalvis
Kreisi kasutaja

liitunud: 20.10.2009




sõnum 09.11.2017 11:55:19 vasta tsitaadiga

Mis liiki muutujana soovib see library parooli saada? Oletan, et ta annab mäluala viida kuhu kopeerida stringi sisu.
Sel juhul tuleb library näidatud mälualale kopeerida (võib kasutada stringi kopeerimist või tavalist memcopy). parooli lõppu tuleb lisada null. Siin võib olla üks aga - tegu on programmidevahelise globaalmuutujaga ja vastavalt tuleb ka seda programmis defineerida. Siin võib kergesti veateate saada, sest ühe programmi virtuaalmälu ala pole teisele nähtav ja vastupidi. Selleks ongi väliste muutujate defineerimist vaja - sel juhul teeb op.süsteem need üksteisele nähtavaks.
Kui ta aga tahab saada lihtsalt viita minu mäluaadressile siis on vaja anda paroolistringi (aadress =&paroolistring). Globaalmuutuja defineerimine tõenäoliselt vaja ka teha.
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  C# mdb-ga ühendamine mine lehele 1, 2  järgmine
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.