Przyjrzałem się funkcji "strtok2()" i wniosek mam taki, że nie nadaje się ona do Twojego programu. W funkcji "odczyt_IMEI" potrzebujesz odebrać IMEI, które jest zawarte przed napisem "OK". Możesz to zrealizować w taki sposób (przenieś do siebie tylko funkcję "odczyt_IMEI"): [syntax=c]#include <iostream> #include <string.h> using namespace...
Nawet nie miałby powodu zrobić inaczej z wielu powodów. Tablica wielowymiarowa jest tak naprawdę tablicą tablic, a więc wszelkie właściwości z tym związane są nadal prawdziwe. PS. Była wzmianka o stringu. Trzymanie ich w ten sposób mija się często z optymalnym wykorzystaniem pamięci.
1. Dlaczego masz wogóle: int *newDesc a nie char* newDesc? 2. Na stringi alokuje się jeszcze miejsce na znak "\0".
Na ATtiny kod musi być w miarę optymalny. Zapomnij o Stringach. Masz char *. Wklej kod, napisz, co chcesz osiągnąć, a ktoś pomoże.
Co robi ta linijka?[syntax=cpp]fflush(stdin);[/synt... Zadaj sobie również pytanie, co robi endl, którym strzelasz na lewo i prawo. ;) W ogóle to ten kod to jest mieszanka C i C++... W C++ masz takie ładne strumienie, którymi się tak różowiutko i przyjemnie pracuje z plikami, a wybierasz fopen i spółkę? ;) Później napiszę coś o samym programie, ale...
Chcesz modyfikować stringi, a deklarujesz tablicę stringów niezmiennych (const char *), co nie ma sensu. Zapewne chcesz mieć stałą tablicę stringów. Tak, int i char, to inne typy danych. Nie mieszaj w to tablic int, bo i po co?
Dzięki Saabotaz, zrobiłem jak napisałeś. Okazało się, że problemem był *char do ktorego ładowałem stringi zmieniłem go char[] i ruszyło. Swoją drogą dziwne :)
jeśli dobrze widzę, to korzystasz z "getline" do pobrania danych z otwartego pliku, "getline" jest po pierwsze funkcją z C a nie C++, powinno się tego unikać jeśli chcemy mieć porządek w kodzie, a po drugie operuje na stringach ( co gorsza stringach char* a nie C++owych stringach ), więc z tych dwóch powodów, a zwłaszcza drugiego, trzeba ją zmienić...
To jest właśnie jak się uczy "na kodach" z sieci i YouTube i się wszystko płacze stringi C++ z char * . Trzeba poczytać trochę o podstawach programowania w C++
#include <stdio.h> . . . unsigned char bufor [10]; unsigned char dana sprintf (bufor, "%d", dana); WriteLCD(bufor); Poczytaj o formatowaniu stringow funkcja sprintf (printf) a wszystkiego sie dowiesz: jak wyswietlac w postaci hex, jak wyswietlac float, stringi etc. pozdrawiam BF
Wygląda na przepełnienie stosu. Na początek wywal wszystkie stringi do FLASH, np. [syntax=c]__flash const char text[81]="ABCDEFGHIJKLMNOPRSTW" "NIE TA LINIA :( " " " "Maciek mowi: ";//PRSTUVWXYZabcdefghijklmnoprstuvwxyz1... [];'\\,./!(at)#$%^&*()`";[/syntax] i [syntax=c]snprintf_P(text, 21,PSTR( "%s%04d%02d%02d %02d:%02d:%02d "), dow, (uint16_t)time.year...
Prowadzący sugerował, że łatwiej zrealizować jego polecenie na stringach, a nie na charach. Wszyscy, którzy na zajęciach zaczynali z charem dostawali opieprz :DD - T.Jeleniewski PWr
z tego co zrozumialem to muszą być wprowadzane i zapamiętywane jako stringi ( lub w c jako char* ).
Jeśli nadal pytasz o C, to taki przykład powinien Ci to objaśnić: imie musi być na tyle duży by pomieścić każde ze spodziewanych imion. Po każdym kopiowaniu do bufora nadpisywane jest tylko tyle znaków ile zawiera w sobie kolejne imię, oczywiście plus jedne znak 0, bo to są stringi.
Z racji tego, że z tablicami jest problem zmieniałem troszkę koncepcję. Czy jest możliwość mając np 3 Stringi : Tak, taka możliwośc istnieje ; te twoje stringi jak założyłeś w pytaniu; będą stałymi (z góry znane) i rezydowac w pamięci ROM. Utworzysz ‘array of arrays ’.. Jeżeli zechcesz je ‘uzmiennic’ i trzymac w RAM - to tego...
chodzi o ALIGN ? Dokładnie, chodzi o ALIGN, ale nie tylko, bo generalnie ALIGNem wyrównujesz początek, a chodzi o wyrównanie końca... <: Wszystko zależy od konkretnej konstrukcji skryptu linkera i startupa... Zobacz jak to jest zrobione w moich przykładach (stm32). jaką flage trzeba dodać, aby kompilator ignorował przypisywanie do samego siebie?...
czyli cos w stylu: no właśnie żaden z tych ;) Ja Ci radziłem inaczej, nie operuj na stringach tylko na char`ze, 1. czytaj char z pliku 2. jesli < to ustaw znacznik 3. jesli > to kasu znacznik 4. jesli nie ma znacznika to wyslij znak do pliku wyjsciowego 5. jesli nie koniec pliku to skocz do 1.
To ja nie rozumiem jaki masz problem. Arduino to C++ to po prostu łaczysz te stringi w jeden. String i char[] lub char* to są zupelnie inne typy. W dalszym ciagu nie rozumiem w czym problem.
Po pierwsze: w GLCD nie ma funkcji wyświetlającej zmienne. Są tylko wyświetlające stringi (zresztą tez do poprawki, bo rzucają warningami o konwersji typów uint/chr). [syntax=c] int temperatura; char napis[6]; sprintf(napis, "Temperatura: %d", temperatura); GUI_Text(0,0,napis,Black,White); [/syntax]
Witam! Jak zmienić poniższy zapis, aby w najprostszy sposób uzyskać 3 tablice wskaźników na 6 różnych stringów? Dla poniższego przykładu kompilator tworzy dwa stringi ("wyl" i "buf") i w do każdej tablicy wpisuje wskaźniki na te same stringi. [syntax=c] char *sOut1[] = { "wyl ", "off " }; char *sOut2[] = { "wyl ", "off " }; char *sOut3[] = { "wyl ",...
Arduino ESP polega na prekompilacie z którego nie ma możliwości wycięcia nieuzywanych funkcjonalności, dlatego część flasha i ramu z zasady tracimy, tu faktycznie jest zonk. Za to w C mniej wiecej wiesz ile pamieci program ma do dyspozycji, tutaj lua potrafi sie nagle wykaszanic i nie bardzo wiadomo czemu, co sie stało i dlaczego? Zapisze to co jest...
Dziwne zachowania = mało RAM lub "jazda" po pamięci (nadpisywanie tablic, stringów). Ile znaków zarezerwowałeś na stringi (npGodzina) a ile one zajmują?
Wiem, że są kody które maja więcej niż dwa znaki. Szerokość mnie nie specjalnie interesuje - ma być 86 znaków w linii. Używam znaków o równej szerokości (Courier New). Ew. można by zaimplementować pogrubienie i znak podziału strony ale na szczęści program zawsze daje na stronie stopkę także ilość linii na stronie jest stała (73 linie na stronę). Głównie...
Te rekordy są stałej czy zmiennej długości? Czy znana jest ich ilość? Generalnie, przekazując z/do dll dane można to na kilka sposobów zrobić. Najczęściej preferowany przez MS, to odpytanie DLL o to, ile danych potrzebuje (jeśli nie jest to stały rozmiar), rezerwacja pamięci i przekazanie wskaźnika do tego obszaru, w którym DLL zapisuje, a caller sobie...
A czy jesteś pewny, że nazwa jest za każdym razem oddzielnym obiektem? String też jest klasą i pola tego typu to referencję. Może masz rożne obiekty Food, ale wszytkie są powiązane do jednego napisu. Deklaracja String l_00 = "" nie tworzy nowego obiektu, tylko przypisuje referencję do statycznego obiektu. Z drugiej strony w Javie Stringi są 'niemodyfikowalne'...
Przy założeniu że char== bajt Na urządzeniach pewnie tak, ale na Windowsie / w internecie nie koniecznie, zależy skąd te Stringi pochodzą
witam dane: kompilator CV na AVR. prosze o pomoc bo nie wiem jak to rozwiazac a mianowicie... mam zadeklarowane dwie stale tablice znakow: flash char tak[]="TAK"; flash char nie[]="NIE "; zadeklarowana tablice wskaźników do tych stalych: flash char *wyborptr[2]={tak,nie}; mam nastepne stringi we flashu: flash char jeden[]="JEDEN "; flash char dwa[]="DWA";...
struct wezel *iter = pierwszy; while(iter) { iter = iter->nastepny; } to na pewno nie zadziała poprawnie. przejdzie przez wszystkie elementy, ale po takiej pętli iter zawsze będzie równy NULL. co do tego: Lista l; l+="zabawa"; co do tego to na oko bez kompilowania wydaje mi się że skoro "zabawa" jest typu const char*...
Ktoś robie inspekcjie paneli (stringi) na falownikach SofarSolar przez charakterystyką prądowo-napięciową? Przykladowo, inspekcja PV paneli w Huawei można robić przez FusionSolar albo przez webinterface loggera.
omg... tragedia... 1. napisac funkcje, ktora wyswietla na LCD jeden znak, ktora bedzie wygladac tak: void LCD_print_char(char character); 2. napisac funkcje, ktora wyswietla stringi, ktora bedzie wygladac i dzialac tak: void LCD_print_string(char* string_ptr) { while(*string_ptr) LCD_print_char(*string_ptr++); } tak, to jest naprawde takie proste......
W linkach które podeslales nie ma nic o c_stringach. Wiedza ktora tam jest opisana jest podstawowa i ja posiadam. Masz rację wiedza ta jest podstawowa, aczkolwiek jej nie posiadasz.C-string jest to po prostu tablica znaków char , która reprezentuje ciąg znaków. [url=https://www.youtube.com/watch?v=ZGt... jest to w miarę dobrze opisane. Ostatnio...
%s jest do wyświetlania stringów (char*), a ty pakujesz tam liczby, nie dziwne, że nie działa tak jak byś chciał. 4\/3!!
Ręce opadają... Zamiast unsigned char bufor[4]; napisz unsigned char bufor[5]; i poczytaj o stringach w C, co jest w nich takiego charakterystycznego na końcu.
Ależ będzie - zwróć uwagę, że ona właśnie opiera się na Stringach i metodach charAt; w przypadku tablicy znaków char[] nie ma takowej, bo po prostu się odwołujesz zmienna[numer_znaku].
Przy okazji pytanie, czy każda operacja na stringach wymaga a by dany string był zakończony znakiem '\'? W języku C string to tablica znaków zakończona "null terminating character" którym jest "(char)0" albo inaczej zapisany '\0`. Wszystkie funkcje operujące na stringach wymagają aby ich parametry były C stringami (z małymi wyjątkami np strncpy) sizeof("1234")...
Jedyne co musisz zrobić to dodać jedną zmienną o nazwie np. lastResult i przypisać jej wynik ostatniego działania, oraz jeden blok if po podaniu drugiej liczby działania. Nie kombinuj za dużo z tymi charami czy stringami, zrobienie porządnego konwertera o którym piszesz wg mnie przekracza na razie Twoje możliwości. Zainteresuje się lepiej funkcją isdigit()...
Chodzi o deklarację zmiennej data W tym przypadku wystarczy, że bufor data zadeklarujesz jako static. Masz tu jeszcze kilka błędów. Funkcja receive zwraca char a Ty próbujesz zwrócić char *. Dodatkowo w main próbujesz przypisać to co zwraca receive do tablicy buffer (co sie nie powinno skompilować). Spróbuj tak: [syntax=c] static const unsigned char*...
A czy on działa? ;) Nie widzę zawarcia żadnych bibliotek... W tytule pisałeś o programie w C++ a to jest chyba bardziej program w gołym C, korzystasz ze stringów char[], metody dostępu do plików też są chyba z C. Z jakich materiałów korzystałeś, tworząc ten zapis/odczyt z pliku?
Mam same int'y, wszystkie funkcje które mam zwracają int'a. Czy umieszczając stringi we flash nie zwiększę zajmowanego miejsca?
"text[i]!=NULL" => "text[i] " Porównujesz char (czili integer ze wskaźnikiem). Stringi w C mają na końcu zero Funkcja static, która nie jest wołana w kodzie zgłosi ten warning jak ustawisz sobie taką opcję. Zresztą nie wiem po co funkcja rysują kółko ma być static. Rczej powinna być widoczna dla innych jednostek kompilacji
Z małymi zmianami działa. zmieniłem deklarację funkcji jakoś ze stringami mi się nawet nie kompilowało. bool przepisywanie(char* pliktymcz, char* plikdozapisu) Teraz u mnie działa.
Witam, Przeczytałem wiele stron z podobną tematyką, próbowałem wielu różnych algorytmów, jednak nie udało mi się osiągnąć tego co chciałem. Założenie: Komunikacja aplikacji napisanej w visual c++ 2010 express z atmega16/32. 1. Wysyłka 5 liczb z komputera: (parametr1, parametr2, parametr3, parametr4, parametr5) na atmegę. Sprawa wydawałoby się prosta,...
...Twoja wersja mi nie działa...z powodu "gwiazdki" ;) nastomiast działa mi takie coś... umieszczam dwie stałe w pamięci flash: flash char tak[]="TAK "; flash char nie[]="NIE "; teraz deklaruję tablicę wskaźników (o dziwo też musi być we flash! ): flash char *wyborptr Dodano po 2 ...prosze o pomoc bo nie wiem jak...
strasznie żeś nakombinował ja wysyłam tak stringi void USART_Transmit_string( char *text ) { while(*text) USART_Transmit(*text++); } void USART_Transmit( unsigned char data ) { /* Wait for empty transmit buffer */ while ( !( UCSRA & (1<<UDRE)) ); /* Put data into buffer,...
Troszkę mało danych, jeśli masz tablicę 10-elementową i chcesz ją zawsze dzielić na 5 ciągów to sprawa jest prosta. Odwołujesz się do kolejnych elementów przez index. Np. tab[0], tab[1] itp. Powiedzmy, że masz w tablicy pojedyncze litery litery (char) wówczas dzielisz na 2 literkowe stringi. Następnie do tych stringów dodajesz literki: http://stackoverflow.com/questions/14720...
Właśnie zawsze mnie zastanawiało jak zabezpieczyć, żeby użytkownik nie mógł wyjść poza bufor danej tablicy Zapamiętać rozmiar i sprawdzać indeks podczas odczytu/zapisu z tablicy. No tak, ale co jeśli pracujemy na stringach. Na przykład: char nazwa[5]; scanf("%s",&nazwa); Jak w takim wypadku zrobić zabezpieczenie, żeby użytkownik...
ludzie!! nie 'char' a UNSIGNED CHAR !! pierwsza istotna sprawa. Wskaznik na 'char' czy na 'unsigned char' to niewielka róźnica, bo bajt to bajt. Ale kompilator i tak zwróci ostrzerzenie przy kompilacji jesli pod adres wzkaznika na char zapiszemy zmienna typu unsigned char... ale: _W_TABLICACH_PRZECHOWUJĄCYCH_STRING_STOS...
Przesyłasz mikrokontroler-mikrokontroler, czy mikrokontroler-PC? Jeśli to pierwsze to sizeof(struktura), pobrać jej adres i wysyłać kolejne bajty. Do PC się to nie sprawdzi (inne długości int, double, char), więc pozostaje konwersja poszczególnych pól na stringi, ich wysłanie i proces odwrotny na PC.
AD 1. Możesz zrobić np tablicę 10 wskaźników na chary i tam wpakować swoje stringi. Pamiętaj, że string charakteryzuje się tym, że ma na końcu zawsze null terminator i nie musisz znać długości stringa żeby cokolwiek z nim zrobić. Czemu w ogóle chcesz to rozwiązać tak śmiesznie ? Tzn tablica globalna stringów + jakaś funkcja, która na niej operuje zwracając...
po pierwsze skąd wytrzasnąłeś: Enable Utxc ???? - to jest bez sensu poza tym po co taki mały bufor 6 znaków. Daj co najmniej 20 jak w przykładzie po kolejne pisałem ci o specjalnym doklejaniu na końcu PRINT'a znaku CR czyli Char(13) i średnika po tym - ale widzę, że albo kolega nie przeczytał tego co napisałem albo tak krótka pamięć ? ;) a u ciebie...
Czy mozna, i jak zwrocic tekst z funkcji w C ? mam napisana funkcje dla uarta na avr ktora wysyla stringi wyslijstring(); chcialbym miec cos w rodzaju: char fukcja() { return "Moj napis" } int main() { ... wyslijstring(funkcja()); ... }
Mam problem. Muszę zrobić tablicę dwuwymiarową stringów, nie char-ów. Jako że w ANSI C nie ma string, robi się coś takiego: char *litery=malloc(sizeof(char)&... Moje pytanie brzmi, jak zrobić tablicę dwuwymiarową ale właśnie tych stringów? Tablicę dwuwymiarową tworzy się tak: char tablica [30][7]; Do pojedynczej komórki...
Mogę błysnąć :) Znalazłem rozwiązanie problemu. Wykorzystałem jedną z ciekawych właściwości CCS, mianowicie możliwość deklaracji takich tablic: const char tab[][*] = {"AAA", "BBB"... } Teraz chcąc porównać odebrany z uart ciąg z jakimś stringiem robie to tak: #define AAA 0 #define BBB 1 switch (szukaj(bufer))...
Przede wszystkim wydaje mi się, że nie zdajesz sobie sprawy z tego, że w C/C++ tablice są numerowane od 0. Tak więc tablica zdeklarowan tak: char bufor[5]; Jest 5-cio elementową tablicą o elementach, do których możemy się tak odwołać: bufor[0]='a'; bufor[1]='z'; bufor[2]='1'; bufor[4]=NULL; Natomiast w przypadku...
Panowie, Panowie... za głupi jestem, żeby się zniechęcić :D. Jeśli mam być szczery to właśnie takich odpowiedzi oczekiwałem. :arrow: Andrzej__S Miałeś rację! problem tkwił w w rozmiarze struktury. zmiana deklaracji z: [syntax=c]typedef struct stringg { uint8_t screen_cnt; // ilość ekranów koniecznych do wyświetlania całego tekstu char napis[]; // tekst...
Oj chyba kolega część książki mówiącą o tablicach przekartkował. ;) [syntax=c]char we_love[] = "cookies!"; // kompilator sam obliczy rozmiar tablicy i skopiuje "cookies!" do niej. char highway_to[4] = "Hel"; // tutaj również tablica będzie kopią "Hel" const char* swiety = "Mikołaj"; // swiety to wskaźnik na const char, zawiera adres literału "Mikołaj",...
[syntax=cpp]element.imie_nazwisko=(konwe... Prawdopodobnie chciałeś stworzyć nowe stringi, ale tego tak się nie robi. Użyłeś właśnie operatora „przecinka” (nawet mimo tego, że są tam nawiasy). To co jest powyżej ma taki sens: do element.imie_nazwisko przypisz rozmiar wskaźnika (czyli...
Nie widzę sensu w używaniu stringów wstawiając w nie 0. Dużo funkcji, np printf, bazuje na tym, że na końcu stringa napotka na 0. Podobne rzeczy spotkasz chociażby bibliotece radzia do hd44780 czy jakiejkolwiek innej operującej na stringach. Coś a la: [syntax=c]void usart_send(char *data) { while(*data) LCD->DR = *data++; } ... int main() { ... usart_send("ala...
Musisz poczytać trochę o stringach, tablicach i wskaźnikach. Powinno być w klasie osoba: char *imie; i wtedy mozesz przypisywać wskaźnik w ten sposób: czlowiek.imie = "Jan Kowalski"; "Jan Kowalski" to string który kompilator umieszcza sobie w pamięci i zwraca wskażnik do niego typu const char *. Wazne jest, że nie jest on tworzony na stosie tylko w...
Serial.println jest tam tylko w celach poglądowych co się aktualnie dzieje. Połączone stringi są przekazywane w programie do procedury która zamienia ciąg na PDU i komendami AT jest wysyłany sms. [syntax=c]int str_len = stringTemperatura.length() + 1; char charTemperaturaBuf[str_len]; stringTemperatura.toCharArray(charTemper... send_sms(charTemperaturaBuf);[/syntax].....
Spróbuj zadeklarować tablicę 7x3, czyli 7 elementów trzy znakowych (do stringów potrzebny jest jeszcze znak null). [syntax=c]const char text_w_rom11[7][3] PROGMEM = {{"Pn"},{"Wt"},{"Sr"},{"Cz"},{"Pt"},{"So...
buffor_rx to zmienna : volatile char buffor_rx która zmienia stan w przerwaniach UART ,poniewaz tel. przy wysyłaniu sms przez port rs232 ,dzieli go na dwa stringi ,a w przerwaniach odczytuje stringi zakonczone znakiem 0x0D
Witam po czasie. Odbieram dane z uarta. Zapisuje je do zmiennej typu String. Następnie dziele je na kawałki(czyli wyłuskuje poszczególne dane). Stosuje do tego polecenie indexOf . A teraz potrzebuje dane porównać lub przeprowadzić działania matematyczne ze zmiennymi typy float lecz nie wiem jak zamienić stringi na float. Próbowałem komendy toFloat();...
Proponuje np. coś takiego... char text[20]; //skrócenie: text[strlen_P(insert_ser)-2&... ...powinno zadziałać, chyba że już za późno na myślenie ;).
Witam. Podane deklaracje mozna odczytac w ten sposob: char (*(*x())[]... bezargumentowa funkcja 'x', zwracajaca wskaznik do tablicy wskaznikow na bezagrumentowa funkcje zwracajaca wartosc typu char (znak). Przyklad tej deklaracji podany raczej jako ciekawostka. Kolejnosc czytania takich struktur opiera sie na...
Pierwszy przykład: funkcja sortuj przyjmuje 3-ci parametr typu char*, tymczasem Ty podajesz zmienną typu char[][]... itd.
Tzn, że program może działać dalej poprawnie a debuger wskazuje na to, że jesteśmy w np HardFaultHandlerze ? Mógłbyś nieco rozwinąć myśl ? Czasem może być jakiś problem sprzętowy/programowy/systemowy, który może spowodować wywalenie się debuggera, który będzie np. uparcie twierdził, że jesteśmy wciąż w jakiejś linii, choć mikrokontroler sobie wtedy...
Stringi w Arduino można dodawać i konwertować, np. String0=String1+String2+String(liczba)+S... i potem Serial.println(String0);. Bezpieczniej jednak korzystać ze statycznej tablicy char jako bufor do wszystkiego i w niej lokować po kolei poszczególne znaki np. funkcją sprintf [url=http://mikrokontrolery.blogspot.com...
Nie ma sprawy. :(mam problem... wszystko pieknie działa;)super wrecz. dodałem reszte znaków;)prosze powiedz mi jak dodac znak.. spacji. przerwy miedzy stringami wyrazówSad niemoge tego nigdzie znalezc:)a jest to nie zbedne . Znak spacji ma w kodzie ASCII wartość 32 (0x20). Oznacza to, że w tablicy morseTab pod pozycją 32, czyli: morseTab[32]...
strlen- zwraca ci długośc Stringa bez znaku terminującego string czyli 0x00. dodanie dwóch stringów powinno tworzyć stringa o 1 dłuższego niż wartość strlen jaka jest zwracana. Na ostatnim miejscu natomiast trzeba dodać znak terminujący 0x00. Funkcje IO w C (char * to string z C ) operuja na stringach opartych na tablicy charów zakonczonych 0x00 , brak...
(at)robgold nie mam pojęcia, dlaczego nie możesz odtwarzać plików FLAC? Ja dzisiaj dorzuciłem małą poprawkę odnośnie zbierania co sekundę bitrate i wystawiania tego na wyświetlacz, problem był szczególnie przy plikach FLAC, gdzie info z biblioteki audio zwracało często 516b/s. Teraz bitrate jest prawie zgodny z tym co pokazuje MediaInfo przy plikach...
Dodano po 7 Ale kodu wynikowego nikt nie przegląda linia po linii, zwłaszcza jeżeli linii jest kilka tysięcy. Przecież stringi widać, a nawet się wyszukuje w byle edytorze ps. kod wynikowy nie ma linii. Dodano po 8 aha, jeszcze jedno. Nie myśl przez "plik hex". Plik hex jest tylko formą przejściową, w finalnym wyrobie się stanie daną binarną
Witam Mam taki problem... chcę wysłać chara przez kontrolke serial port w visual basic na port com. W delphi przez przez comporta nie było problemu bo posiada ten komponent funkcję: Przykładowy kod delphi : procedure TFormComPort.TD(a: Byte; b: Byte; c: Byte; d: Byte); begin ComPort.WriteByte(a); ComPort.WriteByte(b);...
Witam, pisze ponieważ mam problem z programem który muszę napisać na zaliczenie. http://obrazki.elektroda.pl/5589731600_1... http://obrazki.elektroda.pl/9565204700_1... http://obrazki.elektroda.pl/8635400600_1... Wrzuciłem całe polecenie żebyście ogólnie wiedzieli o co chodzi. Otóż mój problem polega na...
Najpierw jak wspomniałem zamiast brać się za kod, postaraj sobie zaprojektować jakiś protokolik komunikacji. Mogę tutaj napisać jakiś kod - ale zapewne nie będzie on optymalny dla twojego rozwiązania. Protokół komunikacji do wysyłania string i odbioru przedstawiłem w temacie bo tyle udało mi się jedynie przesłać. W sensie wysyłaniem liter sterowałem...
Czołem, Mam problem z przesyłem danych USARTEM. Mam taką o to funkcję: [syntax=c] void usartSend(char* data) { uint32_t timeout = 100000; while (*data != 0x00 && timeout > 0){ if (USART2->SR & USART_SR_TXE){ USART2->SR &= ~USART_SR_TXE; USART2->DR = *(data++); timeout = 100000; } timeout--; } } [/syntax] Jeśli wyślę dwa stringi, z których drugi jest...
Witam! W programie mam dwie funkcje wypluwające tekst na LCD. Pierwsza z nich to LCD_WyslijDane(dana), która wysyła odpowiednie hexy do sterownika LCD, a druga to LCD_WyslijLitery(char *x), która wysyła stringi zapisane w cudzysłowiu. Pierwsza funkcja wyświetla literki po kolei tak, że widać na bieżąco jak się produkują. Druga natomiast działa błyskawicznie...
Przy załączeniu napięcia atmedze na wyświetlaczu zamiast oczekiwanego napisu pojawiają się randomowe śmieci. Przy zwyczajnym resecie wszystko jest ok. Z resztą najlepie to widać na filmiku: //MAIN--MAIN--MAIN--MAIN--MAIN--MAIN--MA... portSHORT main(void) { //Inicjalizacja...
Szanowni Specjaliści, Interesuje mnie tylko SCL, za rady dotyczące STL dziękuję. W programie mam mini bazę danych złożoną z kilku kolumn. Każda kolumna to oddzielne DB. Dane typu INT odczytuje się z podanego wiersza bajecznie prosto: np. #Out_Dane:= %DB953.DW(#In_NrWiersza * 2); // *2 - bo INT zajmuje dwa bajty Jak to zrobić ze Stringami? Nie mogę znaleźć...
Właściwie to odradzałbym stosowanie tych przełączników na dłuższą metę ;). Nie ma w sumie żadnej gwarancji na to, że inne kompilatory respektują taką zmianę. Nie ma gwarancji też na to, że przyszłe wersje mingw będą respektowały tą zmianę ;), lepiej jest pisać i przyzwyczajać się do takiego środowiska, gdzie stałe stringi są tylko do odczytu. Zawsze...
Czy LabView pozwala na wysyłanie 1 bajtowych zmiennych to nie wiem, więc pozostaje odczyt stringów. Najprostszy jest oczywiście [url=https://github.com/jnk0le/Easy-AVR-... Można także zastosować coś takiego [syntax=c]int16_t uart_getint(void) { char buff[32]; uart_gets(buff, 32); return...
zapomniałeś o "{" oraz ";" poprawny kod: [syntax=cpp]#include <iostream> #include <cstdlib> #include <string> using namespace std; int main(int argc, char *argv[]){ { string nazwisko; char odp_1,odp_2; do { cout << "Podaj nazwisko z wielkiej litery" << endl; cin>>nazwisko; } while (!(nazwisko[0]>='A' &&...
Sporo możliwości daje funkcja sprintf(). Działa podobnie do printf(), tylko zamiast wywalać tekst na standardowe wyjście, wrzuca go do stringa. char bufor[ROZMIAR]; int liczba; sprintf(bufor, "wynik: %d", liczba); W podobny sposób do stringa można wstawiać liczby całkowite, zmiennoprzecinkowe, a także inne stringi. Pozdrawiam
użyj CreateProces, w commandline wpisz cmd.exe /c X gdzie X to lista poleceń oddzielona znakiem & np. cmd.exe /c dir c: & dir d: & net start messenger jak odczytać jego odpowiedź: przekieruj strumienie i/o do 'pipe' #define bufSize 512 HANDLE readPipe, writePipe; SECURITY_ATTRIBUTES security; STARTUPINFO info; PROCESS_INFORMATION process; char buf[bufSize];...
Witam Mam pytanie odnośnie metody zapisu stringów(char) do pamięci eeprom. Najlepiej abym mógł zapisywać i odczytywać całe zestawy danych. Robię dość skomplikowany budzik i chciałbym zapisywać do eeprom ustawienia. Skleciłem po wielkich potach coś takiego: SETTINGS.h typedef struct { uint8_t GODZINA; uint8_t MINUTA; uint8_t POWTORKI; uint8_t GLOSNOSC;...
Tak, z ciekawości: po co w Rust aż 6 różnych typów string? Wystarczyłby jeden ;) O tak, char* załatwiłby wszystko ;) Rust ma ich trochę więcej niż 6, bo można je różnie komponować dzięki generykom. Polecam artykuł o stringach Dla ochłody polecam stronę: +1, bardzo dobre podsumowanie. Polecam też inne artykuły ze strony, ale to już bardziej dla programistów...
Otóż poradziłem sobie już z tym. Już wyświetla znaki a nawet stringi. Tylko znak w lustrzanym odbiciu, więc przez to stringi tak samo i jeszcze w odwrotnej kolejności znaków. Zamieszczam kod. Co zmienić aby było dobrze ? void LCDPutChar(unsigned char c, int x, int y, int size, int fColor, int bColor) { int i,j; unsigned int nCols; unsigned...
na przykład C oprócz zwykłej tablicy istnieje także statyczna czysta tablica. Co to ma wspólnego z kodem który wrzuciłeś? nie wolno też zakładać że tablica będzie w 2 miejscach(wskaźnik na stosie i reszta na stercie). Tablica jak powyżej nie trzyma nigdy żadnego wskaźnika, tylko liczba_elementów * rozmiar_elementu. const* char Chyba const char* xxx...
Chcesz wykrywać spację oraz białe znaki. Wystarczy, że spojrzysz na tabele ASCII. Od 0 do 32 są same białe znaki, takie jak Horizontal Tab, Line Feed, New Line, Carriage Return czy sama spacja. Najlepiej obsłużyć więc wszystkie te znaki, proponuje więc sprawdzić, czy podany znak do funkcji jest w takim zakresie (najpierw skonwertować go do liczby w...
To po co mieszasz z typami stringów? Stosuj je konsekwentnie, to nie będzie problemów. Windows ma dla wygody odrębne funkcje do różnych typów stringów - stosuj te właściwe, dla zwykłych char* to są z A na końcu. A jak koniecznie chcesz mieć w programie inne typy stringów (po co?), to w tych linkach, które podałem, są wskazówki, jak to robić.
Dodaj log debugowy w setupie aby sprawdzic czy nie resetuje Ci się mikrokontroler. Używałbym char[] zamiast String i porównanie stringów strcmp(). Zamiast tej ściany if-else wrzuciłbym komendy do jakiejś tablicy structów. Gdzie struct zawierałby dwa pola on i off które wskazują na komendy. Indeks tablicy wskazywałby który elektromagnes właczasz/wyłączasz....
Zaczynam uzywac boosta do manipulacji stringami. dodałem taki kod: vector<string> strs; boost::split(strs, temp, boost::is_any_of("\t ")); i nie mogę zlinkować programu hosts.cpp:(.text+0x342): undefined reference to `trim(std::basic_string<c... std::char_traits<char>,...
Jak w temacie. Mam zdefiniowaną tablicę: extern unsigned char Fonts [92] [5] PROGMEM = { costam } Jak dokopać się do danych w niej zawartych? W dokumentacji avr-libc jest jakiś przykładowy program na stringach, ale używa funkcji operujących właśnie na ciągach znaków. Po przeniesieniu do RAM-u wszystko działa poprawnie, problemy zaczynają się dopiero...
Jak chcesz przypisać wartość do wskaźnika to wypadałoby najpierw przypisać mu adres pamięci gdzie dane mają być przypisane bo w tej chwili wskaźnik q nie wskazuje żadnego miejsca w pamięci. Poza tym próbujesz do zmiennej typu char przypisać wartość typu string. Poczytaj jeszcze raz o wskaźnikach i naukę zacznij od typów prostych, nie mieszaj w to stringów....
Są dwa stringi . Na zdjęciach przesyłam jak dzisiaj falownik pracował . Charakterystyczne pykanie jest jak podejrzewam wtedy gdy powinien chodzić czyli między 7.30 a 16. Potem się wyłącza . Foto falownika i wykres jego dzisiejszej pracy . U nas dzisiaj pochmurno , opady śniegu od 10ej .
Zakładając, że czcionka się składa z dwóch wierszy (po 1 bajt każdy, czyli w sumie 16 pikseli wysoka) to najpierw można wysłać górny wiersz, odczytać aktualne położenie kursora, cofnąć się o szerokość czcionki i wysłać dolny wiersz. Przy całych stringach można najpierw wysłać cały górny wiersz, raz odczytać położenie i się cofnąć, a następnie cały dolny...
Wg mnie kwerenda jest dla Accesa tylko stringiem, a jest wykonywana na serwerze MySQL. Niezupełnie. Tabele bazy MySQL są "tabelami połączonymi" Accessa i ten je traktuje niemal jak swoje. Żadne funkcje, które nie są znane Accessowi niestety nie zostaną wykonane. Wykorzystywana jest również składnia języka SLQ charakterystyczna dla Accessa. Przykładowo...
Praktycznie prawie nigdy nie będzie idealnie. Nawet ja mając dach idealnie na południe nie mam tak, że panele pracują cały czas z pełną mocą. Praktycznie praca na pełnej mocy jest pomiędzy godzinami 10:30 a 12:30 Mam na dachu 4,8kWp i falownik 4,4kW i zdarza się kiedy jest zimno ale słonecznie to praca na pełnej mocy utrzymuje się dłużej i charakterystyka...
Dziękuję :) Dobry pomysł ale troszkę pamięciożerny(obecny kod przy wykonaniu rezerwuje prawie 300Mb). Mimo to jest dużo lepszy, przynajmniej po załadowaniu mam natychmiastowy dostęp do wybranego wiersza. Zamiast tablicy string'ów chciałbym użyć wielowymiarowej tablicy np: char strcpy danych do tablicy. Działający kod z tablicą string: [syntax=cpp] #include<iostream>...
ta funkcja ma błąd/nie działa poprawnie bo nie działa char *strrev(char *str) , który jest wywoływany na koniec itoa(). Probowalem u siebie i nie odwróciło string-a: itoa(1234,pomiarNap,10); strrev(pomiarNap); wypiszNaLCD(pomiarNap); oczywiście będzie nadal 4321 na LCD. Dodano po 18 Na szczęście przy krótkich stringach można...
chara const chara chara const chara konwersja chara flash
silnik sterowany komputerem kontrolki mrugaj volvo z18xe wymiana silnika
stabilizator napięcia prądnicy wideodomofon zamel
Prawidłowa rezystancja wejściowa anteny radiotelefonu - 50 omów Szczotki a problem z przełączaniem obrotów wiertarki