kaniagostyn *UKS Kania Gostyń
Raz jeszcze prośba.... Wczoraj pisałem post z zapytaniem o materiały dotyczące dwóch
tematów:
1. Opis środowiska Visual C++
2. Operacje na łańcuchach znakowych (string)
Na google nie ma rezultatów zbyt wielu, a jeśli są to informacje o książkach
poświęconych tej tematyce.Pali mi się strasznie z powyższymi (referat). W
związku z czym pytanie:
Byłby ktoś uprzejmy pomóc w znalezieniu powyższych ?
Konkatenacja - jak przyspieszyc ok. 100x. Zamiast bawić się w zapisywanie danych na dysku
zastosuj lepiej coś działajacego jak StringBuilder
Dzięki temu że aplikacja nie będzie miała kontaktu z dyskiem
uzyskasz jeszcze większą prędkość działania.
Przykład takiej klasy znajdziesz na
http://www.vbaccelerator.com/home/Vb/Code/Techniques/StringBuilder/ar...
(kod ten przeznaczony jest dla VB6, może wiec nie działać z VBA)
Jaki jest powód takiego zachowania.
Łączenie stringów w Visual Basicu
polega na tym iż runtime rezerwuje nowy, pusty obszar pamięci
o wielkości równej sumarycznej wielkości dwóch łączonych stringów
i do tego nowego obszaru kopiowana jest ich zawartość.
Dla każdej kolejnej operacji konkatenacji
niezależnie czy zapisana jest z wykorzystaniem operatora + czy &
wykonywana jest ponownie powyższa operacja.
W jaki sposób StringBuilder może tutaj pomóc.
StringBuilder jest dodatkową klasą, zakładającą własny bufor
wewnątrz którego łączone są stringi.
Za każdym razem kiedy wielkość wynikowego łańcuch znaków
ma przekroczyc stworzony wcześniej bufor
jego wielkość jest podwajana
(jego wielkość wzrasta wiec w postępie geometrycznym)
Dzieki wypracowanemu sporemu zapasowi miejsca w buforze
StringBuilder może rzadziej alokować nową pamieć
nie musi też tak często kopiować dużych porcji danych
która to operacja występuje przy każdej normalnej konkatenacji.
Problem - MSDE i nazwa serwera (local). Witam,
Po zainstalowaniu MSDE, nazwa serwera brzmi tak jak "Pełna nazwa komputera"
czyli "KOMPUTER_PC", a nie "local"
Tworzę program w Visual C++ .net 2003, który łączy się z MSDE.
Tylko że łańcuch tekstowy do połączenia musi zawierać "Server=KOMPUTER_PC"
aby program połączył się z MSDE na moim komputerze.
Co należy zrobić aby program się połączył dla stringu "Server=local"?
Najprościej zmienić "Pełną nazwę komputera" na local i zainstalować jeszcze
raz MSDE.
ale chyba to nie jest wyjście.
String* SQL_POLACZ = S"Server=KOMPUTER_PC;DataBase=Test;Integrated
Security=SSPI";
Co należy zrobić ze stringiem połączenia w programie,aby instalując program
i bazę na
dowolnym komputerze z MSDE wszystko działało?
Pozdrawiam
Tomek
Problem - MSDE i nazwa serwera (local).
Witam,
Po zainstalowaniu MSDE, nazwa serwera brzmi tak jak "Pełna nazwa
komputera"
czyli "KOMPUTER_PC", a nie "local"
Tworzę program w Visual C++ .net 2003, który łączy się z MSDE.
Tylko że łańcuch tekstowy do połączenia musi zawierać "Server=KOMPUTER_PC"
aby program połączył się z MSDE na moim komputerze.
Co należy zrobić aby program się połączył dla stringu "Server=local"?
Najprościej zmienić "Pełną nazwę komputera" na local i zainstalować
jeszcze raz MSDE.
ale chyba to nie jest wyjście.
String* SQL_POLACZ = S"Server=KOMPUTER_PC;DataBase=Test;Integrated
Security=SSPI";
Co należy zrobić ze stringiem połączenia w programie,aby instalując
program i bazę na
dowolnym komputerze z MSDE wszystko działało?
Moim zdaniem to brak jest tu okreslenia przy pomocy jakiego klienta sie
laczysz (wlasciwosc Provider). Najlepiej jedan zrob tak aby wymusic
podlaczenia sie poprzez wlasciwosc "prompt" ustawiona na "required' (w ADO
jest to wartosc rowna 3 [AdPromptRequired]) i po polaczeniu zabaczyc jaka
jest zawartosc wlasciwisci ConnectionString. Oczywiscie wszystko pod
debugger'em.
MP
Problem - MSDE i nazwa serwera (local). Vez do Han napisał(a):
| Witam,
| Po zainstalowaniu MSDE, nazwa serwera brzmi tak jak "Pełna nazwa
komputera"
| czyli "KOMPUTER_PC", a nie "local"
| Tworzę program w Visual C++ .net 2003, który łączy się z MSDE.
| Tylko że łańcuch tekstowy do połączenia musi zawierać "Server=KOMPUTER_PC"
| aby program połączył się z MSDE na moim komputerze.
| Co należy zrobić aby program się połączył dla stringu "Server=local"?
| Najprościej zmienić "Pełną nazwę komputera" na local i zainstalować
jeszcze
| raz MSDE.
| ale chyba to nie jest wyjście.
| String* SQL_POLACZ = S"Server=KOMPUTER_PC;DataBase=Test;Integrated
| Security=SSPI";
| Co należy zrobić ze stringiem połączenia w programie,aby instalując
program
| i bazę na
| dowolnym komputerze z MSDE wszystko działało?
Local nie chce działać jak masz zainstaloway wraz z nazwą instancji. To nie
ten przypadek?
"." też jest równie dobra jak local.
a właśnie spróbowałem napisać "(local)
azwa_bazy" i działa
Pozdrawiam
Artur S.
LPTSTR to string. On 2007-04-19 22:56, Jacek Czerwinski wrote:
Dnia 19 Apr 2007 12:15:15 -0700, inf@o2.pl napisał(a):
| Witam,
| Mam zmienne w Visualu C++
| LPTSTR lancuch;
| String^ lancuch2;
O kurde widzę że nie znam C++ :(
Możesz spać spokojnie, to po prostu nie jest C++.
LPTSTR to string.
Jacek Czerwinski wrote:
Dnia 19 Apr 2007 12:15:15 -0700, inf@o2.pl napisał(a):
| Witam,
| Mam zmienne w Visualu C++
| LPTSTR lancuch;
| String^ lancuch2;
O kurde widzę że nie znam C++ :(
to nie jest C++ , tylko C++/CLI . Inny język, przypadkiem również
obsługiwany przez kompilator wymieniony powyżej
B.
LPTSTR to string. inf@o2.pl pisze:
Witam,
Mam zmienne w Visualu C++
LPTSTR lancuch;
String^ lancuch2;
W zmiennej lancuch cos jest. jak przeniesc zawartosc z lancuch do
lancuch2 oraz jak zrobic to odwrotnie?
String^ lancuch2 = gcnew String(lancuch);
LPTSTR to string. On 19 Kwi, 23:06, Bronek Kozicki <b@spam-trap-cop.netwrote:
Jacek Czerwinski wrote:
| Dnia 19 Apr 2007 12:15:15 -0700, inf@o2.pl napisał(a):
| Witam,
| Mam zmienne w Visualu C++
| LPTSTR lancuch;
| String^ lancuch2;
| O kurde widzę że nie znam C++ :(
to nie jest C++ , tylko C++/CLI . Inny język, przypadkiem również
obsługiwany przez kompilator wymieniony powyżej
B.
--
Remove -trap- when replying. Usun -trap- gdy odpisujesz.
No ale duzo bibliotek na tym bazuje tak jak np tej ktorej uzywam do
obslugi SmartCard :)
LPTSTR to string. On 20 Kwi, 08:44, Marcin Gabryszewski <firstname.surn@gdata.pl
wrote:
inf@o2.pl pisze:Witam,
| Mam zmienne w Visualu C++
| LPTSTR lancuch;
| String^ lancuch2;
| W zmiennej lancuch cos jest. jak przeniesc zawartosc z lancuch do
| lancuch2 oraz jak zrobic to odwrotnie?
String^ lancuch2 = gcnew String(lancuch);
--
Marcin Gabryszewski
G DATA Software Sp. z o.o.www.gdata.pl
a jak to zrobic w druga strone? tzn majac stringa przejsc na LPTSTR?
LPTSTR to string. On 20 Kwi, 10:57, Marcin Gabryszewski <firstname.surn@gdata.pl
wrote:
inf@o2.pl pisze:
| On 20 Kwi, 08:44, Marcin Gabryszewski <firstname.surn@gdata.pl
| wrote:
| inf@o2.pl pisze:Witam,
| | Mam zmienne w Visualu C++
| | LPTSTR lancuch;
| | String^ lancuch2;
| | W zmiennej lancuch cos jest. jak przeniesc zawartosc z lancuch do
| | lancuch2 oraz jak zrobic to odwrotnie?
| String^ lancuch2 = gcnew String(lancuch);
| --
| Marcin Gabryszewski
| G DATA Software Sp. z o.o.www.gdata.pl
| a jak to zrobic w druga strone? tzn majac stringa przejsc na LPTSTR?
teoretycznie NIE MOŻNA,
ale na szczęście tylko teoretycznie :)
Ogólnie chodzi o to że String jest zarządzany czyli, nie możesz dostać
się bezpośrednio do pamięci bo manadzer nie będzie wiedział o tym czy
możę już ją zwolnić.
Ale i tak najbezpieczniej będzie PRZEKOPIOWAĆ znak po znaku,
oczywiście we wcześniej zaalokowany "lancuch"
(lancuch[n] = lancuch2[n])
PS
jak chesz inaczej to poczytaj o Marshal,
szczególnie o Marshal::Copy
--
Marcin Gabryszewski
G DATA Software Sp. z o.o.www.gdata.pl
To moze jest jakas metoda dla char*?
LPTSTR to string.
inf@o2.pl wrote:
On 19 Kwi, 23:06, Bronek Kozicki <b@spam-trap-cop.netwrote:
| Jacek Czerwinski wrote:
| Dnia 19 Apr 2007 12:15:15 -0700, inf@o2.pl napisał(a):
| Witam,
| Mam zmienne w Visualu C++
| LPTSTR lancuch;
| String^ lancuch2;
| O kurde widzę że nie znam C++ :(
| to nie jest C++ , tylko C++/CLI . Inny język, przypadkiem również
| obsługiwany przez kompilator wymieniony powyżej
| B.
| --
| Remove -trap- when replying. Usun -trap- gdy odpisujesz.
No ale duzo bibliotek na tym bazuje tak jak np tej ktorej uzywam do
obslugi SmartCard :)
Ile to jest owo dużo?
Pozdrawiam
STringi w Visual C++ 6.0 Microsoftu. Witam....
Mam do was prośbę o pomoc.
W jaki sposób mogę użyć stringów w tym kompilatorze
W Borlandzie wystarczyło zadeklarować zmienną np.
string s;
I wystarczyło, a w Microsofcie nie mogę tego zrobić, bo mi wywala jakiś
błąd.
Jak deklarować zmienną łancucha znaków, abym mógł ten łąńcuch przekazywać
do funkcji jako jeden z parametrów?
Proszę was o pomoc.
Z poważaniem
Funak
Usuwanie znaczników HTML ze łańcucha znaków PHP. Witam szanownych grupowiczów.
Jak widać jestem nowy, w PHP bawię się od dwóch dni i jak na razie zrobiłem
licznik odwiedzin - bo to jest chyba najłatwiejsze ;).
Teraz zabrałem się za Księgę Gości i chcę usuwać znaczki HTML ze String'a.
No więc jak to zrobić?
Nie chodzi mi o użycie polecenia str_replace, gdyż to nie ma najmniejszego
sensu...
$tekst = str_replace("<BR","",$tekst);
$tekst = str_replace("<Br","",$tekst);
$tekst = str_replace("<bR","",$tekst);
$tekst = str_replace("<br","",$tekst);
gdyby zrobić tak dla każdego znacznika, trzeba by zrobić kilkunasto/kilkuset
kilobajtowy plik PHP, a nie o to chodzi.
Czy nie da się usuwać znaku "<" i wszystko, co dalej, aż do znaku "" ?
Programuję tylko w Visual Basic'u... no i w nim może dokonać takie "cuda" ;)
Jak uzyskac ilosc elementow tablicy?. Witam,
| No i jak juz sprawdzac string na
| null-e to możesz sprawdzać <vbnullstring lub <vbnullchar (w
vb6).
| Ale po co to sprawdzac?
Jakby tam byly :) Czyli tylko w przypadku gdy ich tam sie spodziewamy,
czyli
raczej w przypadku przekazywania stringa np z VC++, lub jezeli sami
gdzies w
kodzie uzywamy vbnullchar lub vbnullstring (podoba mi sie
wytlumaczenie czym
sie roznia w "Win32 API Programming with Visual Basic").
Len(vbNullString) zwraca zero, a vbNullChar w BSTRze nie powinno byc (o
ile go tam nie wsadzisz). Jesli przekazujesz "prealokowany" string do
funkcji API jako bufor a funkcja konczy lancuch w ten sposob, to
powinienes usunac ew. null char zanim ten string przekazesz dalej.
Co to jest "Win32 API ..." - jakas ksiazka?
Pozdrawiam,
Pawel
np: "The Division Bell" Pink Floyd
Pilne, prośba o pomoc.
"Jarek" <l@hot.plwrote in message
Witam,
poszukuje pilnie materiałów dotyczących:
1. Opis środowiska Visual C++
2. Operacje na łańcuchach znakowych (string)
Czy ktoś mógłby pomóc w znalezieniu powyższych ?
Hi możesz specyzować pytanie ?
Pierwsze pytanie nie bardzo rozumie ?
Co do drugiego to zależy czy chodzi Ci o C czy też C++.
Wersja dla czystego C
Operacje na stringach z C znajdziesz w MSDN Microsoft'u na stronie
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcco...
ml/_crt_string_manipulation.asp tylko uważaj bo każda funkcja ma przynajmnej
2 wersje:
1. Standardowa np. strlen
2. Unicode np. wcslen
W C++ najczęściej uzywa się klasy CString (jesli mnie pamięć nie myli to
wymaga MFC)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmf...
l/_mfc_cstring_class_members.asp
Choć w C++ możesz też używać regularnych funkcji C.
Sorki za orte, ale jeszcze nie zainstalowałem słownika :]
zanotowane.pldoc.pisz.plpdf.pisz.plshirli.pev.pl