tak jak rollercoster napisał:
albo nawet spring data jpa, jeszcze fajniejsze
ale oba wymagają podpięcia springa pod Twój projekt :P
Wersja do druku
Chce by metoda otwarła plik, zapisała wszystkie jego linie do listy, sprawdziła czy lista zawiera dany String filename i jeżeli nie to go dodała. Co tu jest nie tak, że mimo iż w pliku jest już 5 takich Stringów to metoda i tak dodaje kolejny?Kod:public void createUserFile() throws IOException{
File file = new File("test.txt");
FileWriter fw = new FileWriter(file, true);
BufferedWriter bw = new BufferedWriter(fw);
Scanner scan = new Scanner("test.txt");
try {
if (!file.exists()) {
file.createNewFile();
}
List filelist = new ArrayList();
while(scan.hasNextLine()){
filelist.add(scan.nextLine());
}
if(!filelist.contains(filename)){
bw.write(filename);
bw.newLine();
}
}catch(Exception e){
e.printStackTrace();
} finally {
bw.flush();
bw.close();
scan.close();
}
}
edit#
Wprowadziłem drobne zmiany
teraz wyświetla mi nazwę pliku (by się upewnić, że do tej pory została ona już zadeklarowana przez inne metody) i ciągle przechodzi do else "nie znalazło". A w pliku jest kilka linijek które powinno znaleźć...Kod:while(scan.hasNextLine()){
if(filename.contains(scan.nextLine())){ //equals tak samo
System.out.println(filename);
System.out.println("znalazlo");
break;
}else{
System.out.println(filename);
System.out.println("nie znalazlo");
}
}
Błędem było utworzenie scannera ze stringiem jako argument zamiast obiektem file - więc scanner zawierał nazwę pliku, a nie jego zawartość.
Na przyszłość polecam: http://www.vogella.com/tutorials/Ecl...g/article.html lub tutorial do debugowania do IDE, z którego korzystasz.
Kod:public class TorgFile {
public static void main(String[] args) throws IOException {
TorgFile torgFile = new TorgFile();
String test = "test";
torgFile.createUserFile(test);
torgFile.createUserFile(test);
torgFile.createUserFile(test);
}
public void createUserFile(String filename) throws IOException {
File file = new File("test.txt");
FileWriter fw = new FileWriter(file, true);
BufferedWriter bw = new BufferedWriter(fw);
Scanner scan = new Scanner(file);
try {
if (!file.exists()) {
file.createNewFile();
}
List<String> filelist = new ArrayList<>();
while (scan.hasNext()) {
filelist.add(scan.next());
}
if (!filelist.contains(filename)) {
bw.write(filename);
bw.newLine();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
bw.flush();
bw.close();
scan.close();
}
}
}
no właśnie, nie odpalaj programu na 'run' tylko 'debug', wtedy mozesz zatrzymywać się na konkretnych linijkach kodu i sprawdzać co tam jest i co się dzieje
dlaczego przy tworzeniu nowej instancji roomu lista writerów jest cały czas taka sama?
http://pastebin.com/aQphxiC8
#edit
wywaliło posty przez migrację coś się, coś się popsuło i nie było mnie słychać, to powtórzę jeszcze raz - dążę do tego, by każdy Room miał listę PrintWriterów graczy w nim przebywających (writery tworzę i dodaję w inicjalizacji PlayerHandler, po uzyskaniu połączenia via socket); w obecnej formie po utworzeniu nowego pokoju, lista cały czas posiada PrintWritery graczy z poprzednich roomów. jak temu zaradzić?
okazało się, że źle zliczałem liczbę graczy na serwerze. po utworzeniu jednej instancji klienta więcej przekonałem się, że wszystko działa jak należy.
elo, ja tu troche z noobskim pytaniem ale sprawa wyglada tak:
potrzebuje napisac bota (a raczej dwa) do prostej gierki, co chce osiagnac:
1) gierka jest powiedzmy wyscigowa, potrzebuje bota, ktory ultra szybko startuje (wciska strzalke w momencie kiedy wyscig sie zaczyna). w momencie startu jest odgrywany dzwiek, powiedzmy ding.wav i wydaje mi sie, ze z tego najlatwiej wyciagnac informacje o tym kiedy trzeba kliknac ta szczalke.
2) skanowanie po ip/portach (na sieciach sie chuja znam) czy serwer gry jest wlaczony (serwery w niej stawiaja ludzie na swoich pctach gdy chca sobie pograc) i jak najszybsze polaczenie sie z serwerem (ewentualnie samo powiadomienie o tym, polaczyc sie moge recznie zeby bylo latwiej) bo ta gierka jest zbugowana i ten kto pierwszy wejdzie na serwer ma lekka przewage nad pozostalymi.
teraz tak - zdaje sobie sprawe, ze to ciut zaawansowane rzeczy i nikt nie bedzie tlumaczyl szczegolowo co robic, ale to jest cel na kilka najblizszych miesiecy i chce, zebyscie mi po prostu podsuneli pomysl jak powyzsze dwie rzeczy wychwycic a ja sobie bede w wolnym czasie pomału googlowal i uczyl sie metoda prob i bledow.
znam podstawy c++ ale nie wiem czy nie lepiej by bylo ogarnac pythona albo inny skryptowy jezyk do tego typu rzeczy?
Mysle ze najlatwiejszy sposob to znalezienie jakiejs zmiennej ktora zmienia sie w momencie startu. Ja bym na poczatku sprobowal sciaganc cheat engine i za pomoca odfiltrowywania zmiennych staral sie powiazac jakas zmienna z tym wydarzeniem. Tych zmiennych bedzie pewnie duzo wiec dowolna z nich ci wystarczy. A potem majac adres tej zmiennej albo wskaznik do niej za pomoca jakiejs funkcji read process memory juz sobie bedziesz ja mogl czytac kiedy tylko chcesz i na jej podstawie robic jakies akcje.
2) skanowanie po ip/portach (na sieciach sie chuja znam) czy serwer gry jest wlaczony (serwery w niej stawiaja ludzie na swoich pctach gdy chca sobie pograc) i jak najszybsze polaczenie sie z serwerem (ewentualnie samo powiadomienie o tym, polaczyc sie moge recznie zeby bylo latwiej) bo ta gierka jest zbugowana i ten kto pierwszy wejdzie na serwer ma lekka przewage nad pozost
Ale to tez sie odbywa przez aplikacje gry w ktorej masz tabelke z lista serwerow czy ty musisz znac ip i wpisac to ip jakos przez konsole? Jak ta pierwsza opcja to chyba podobnie mozesz zrobic. Tzn dowiedziec sie w jakiej zmiennej jest przechowywany licznik aktualnie dostepnych serwerow a potem monitorowac ta zmienna i jak sie zwiekszy o 1 to wiesz ze sie pojawil nowy serwer
Mamy jakiś gopherów na pokładzie?
http://jetbrains.com/go
<stanął mi>
Oczywiście ;) Fajnie ze teraz bedzie first class IDE support dla Go :)
Czego używałeś do tej pory? Ja próbowałem liteide, ale dosyć biedne było i zostałem przy tandemie IDEA + Go plugin i w sumie działała znośnie oprócz debuggera.
Z tego co wiem pany z Jetbrainsów zrobili swojego forka tego pluginu także wiem ciekawy co im wyjdzie.
edit:
https://scr.hu/D56AA7
Czyli to po prostu kolejny plugin + community jako baza. Ciekawie ciekawie
Czy zrobienie gry samochodowej multiplayer będzie jakies MEGA TRUDNE dla kogoś kto nigdy nie miał z takimi rzeczami styczności? Grę planuję robić w Unity bo to na dzień dzisiejszy chyba najbardziej rozwijająca się platforma
Ze zrobieniem takiej gry w Unity
jak umiesz C# na jakimś tam poziomie to zrób sobie tutoriale ze strony unity i dasz radę coś klepnąć
http://www.oracle.com/technetwork/ja...ads/index.html
działa wam?
nie mogę pobrać JDK
działa
mam kod w jezyku javascript (react.js)?, bedzie to aplikacja na stronie internetowej, obecnie mam forme do ktorej uzytkownik moze wpisac login email i haslo. Jak w bezpieczny sposob zapisac te informacje w bazie danych mysql? Cos malo na ten temat jest albo zle szukam :D
Jeszcze ten tutek od siebie polecę, nie tak bezpieczny jak Dropbox oczywiście ale trochę bardziej techniczny:
https://crackstation.net/hashing-security.htm
http://shop.oreilly.com/product/0636920041528.do
Ma ktoś/czytał ktoś?
Pany uczę się powoli pisać zapytania w sqlu i napotkałem mały problem. Mam znaleźć Produkty, które sprzedały się w ilości powyżej 500 sztuk. Wyświetlić alfabetycznie wg kategorii i malejąco wg ilości wynik. Wszystko fajnie działa tylko nie wiem jak napisać warunek z ilością. Wpisując Where IloscZamowien > 500 wyskakuje błąd (Invalid column name). Pogrupować wyniki po tej nazwie kolumny mogę ale warunku napisać już nie. Co robię źle ?
Kod PHP:Select ProductName, CategoryName,SUM(Quantity) as IloscZamowien from dbo.Products as P inner join dbo.Categories as C ON p.Categoryid=c.categoryID inner join dbo.OrderDetails as O ON p.productid=o.productid group by ProductName,CategoryName order by CategoryName desc,IloscZamowien desc
Nie jestem na 100% pewny ale IloscZamowien to nie jest twoja kolumna tylko jest to nazwa zmiennej , więc nie mozesz sie do niej odwolac ani w WHERE ani w HAVING. Mozesz to rozwiazac dodajac warunek HAVING :
@editKod:Select ProductName, CategoryName,SUM(Quantity) as IloscZamowien
from dbo.Products as P inner join dbo.Categories as C ON p.Categoryid=c.categoryID
inner join dbo.OrderDetails as O ON p.productid=o.productid
group by ProductName,CategoryName
HAVING SUM(Quantity) > 500
order by CategoryName desc,IloscZamowien desc
No , na dole Ci wytlumaczyli dobrze :P
To wynika z faktu, że zapytanie SQL jest przetwarzane w innej kolejności niż je piszesz. Przykład z pierwszej lepszej strony:
Widać tutaj, że twój alias IloscZamowien na poziomie WHERE po prostu nie jest jeszcze znany, bo SELECT występuje dopiero później. Natomiast na poziomie ORDER BY już taki alias istnieje, dlatego tu nie ma błędu.Kod:1. FROM
2. ON
3. OUTER
4. WHERE
5. GROUP BY
6. CUBE | ROLLUP
7. HAVING
8. SELECT
9. DISTINCT
10 ORDER BY
11. TOP
musisz uzyc HAVING -- agregowanie wykonuje sie wraz GROUP BY'em, wiec na etapie wyciagania wierszy z bazy nie mozesz sie do tego odwolac w klauzuli WHERE.
edit:
jako ze jak widac z trzema osobami scigalem sie o to, kto pierwszy odpowie, to dorzuce w poscie cos jeszcze. otoz na ircu zadalem dosc proste pytanie:
ktory kawalek kodu preferujecie? :) w tym jezyku operacje na iteratorach wykonywane sa leniwie, wiec oba snipetty daja ten sam efekt.Kod:(1) let mut result = None;
for child in &self.children {
result = child.find(&path);
if result.is_some() { break }
}
result
(2) self.children
.iter()
.map(|x| x.find(&path))
.skip_while(|x| x.is_none())
.nth(0)
.unwrap_or(None)
Jak dla mnie (2) wygląda bardziej przejżyścieCytuj:
ktory kawalek kodu preferujecie? :) w tym jezyku operacje na iteratorach wykonywane sa leniwie, wiec oba snipetty daja ten sam efekt.Kod:(1) let mut result = None;
for child in &self.children {
result = child.find(&path);
if result.is_some() { break }
}
result
(2) self.children
.iter()
.map(|x| x.find(&path))
.skip_while(|x| x.is_none())
.nth(0)
.unwrap_or(None)
skonczylem na czyms zupelnie prostszym:
problem byl taki, ze calkowicie zapomnialem o early returnach z funkcji -- a czulem ze mi czegos brakuje piszac pierwszy snippet. :DKod:for child in &self.children {
if let Some(tree) = child.find(&path) {
return Some(tree)
}
}
None
(1) jest chyba czytelniejsza, szczególnie dla nie-funkcyjnych świrów ale (2) jest o wiele ładniejsza
(sam też wolałbym napisać coś w stylu 2 :P)
btw, zamiast skip_while mozna tam rowniez uzyc filter, co znowu dziala tak samo ze wzgledu na leniwosc iteratorow.Cytuj:
Returns the nth element of the iterator.Kod:fn nth(&mut self, n: usize) -> Option<Self::Item>
Note that all preceding elements will be consumed (i.e. discarded).
Like most indexing operations, the count starts from zero, so nth(0) returns the first value, nth(1) the second, and so on.
nth() will return None if n is greater than or equal to the length of the iterator.
edit: imo najladniejszy jest 3ci snippet.
Ma ktoś gdzieś jakoś ładnie rozrysowane te wszystkie platformy w .NET? Jakieś wprowadzenie teoretyczne? Czym do cholery się różni jedno od drugiego.
Mam do zrobienia serwis webowy, mam pełno poradników, web service -> pisze kilka funkcji -> tu mam dodać kilka kontrolek(?) za pomocą windows forms, ale nie mam tego w vs2015, ponoć jest przestarzałe. Szukam zamiennika, czytam o WPF, dalej nic, nie mam tego w vs2015(mam jakieś 3 template online ale za cholere nie wiem który wybrać(viewmodel, usercontrol czy datawindow). Czego ja mam do cholery użyć i czym to się różni od tych wszystkich web forms, asp.net mvc i tak dalej?
@
Znalazłem coś jak to zrobić w web formsach(@teraz czytam, że mvc to następca web formsów -.-), ale z tego co widzę wynik końcowy i robota prawie niczym się nie różni od WPF i windows forms ktoś coś?
@Z zadaniem sobie poradziłem tym sposobem, ale nadal proszę o wprowadzenie teoretyczne ;d
Koduje może ktoś w Javie używając JPA?
Zastanawiam się czy przy wyciąganiu rekordu z bazy danych muszę w każdej metodzie otwierać nowego EntityManagera? Czy może da się go jakoś wstrzyknąć używając np. Springa?
Nie musisz, najlepiej jak sam nie będziesz zarządzał transakcjami dopóki tego nie potrzebujesz, a jeszcze nie mialem chyba przypadku w którym tego potrzebowałem.
Zależy jaki masz config springa(xml vs java config), tutaj masz dobry przykład:
http://www.baeldung.com/the-persiste...jpa#javaconfig
Później w swojej warstwie dostępu do danych dodajesz @PersistenceContext EntityManager entityManager; + @Transactional w odpowiednich warstwach i pchasz ten wózek dalej :)
Jak chcesz więcej info to wrzuć kod swojego DAO lub Repo + konfig springa.
@Rollercoster ;
Dzięki za odpowiedź! :)
Właśnie od jakiegoś czasu uczę się tworzenia webowych aplikacji poprzez właśnie tworzenie swojej. Dodatkowo chcę to wykorzystać jako projekcik do CV, bo chciałbym się w niedalekiej przyszłości załapać na jakiś staż/juniora, zależnie od tego co się trafi.
Config springa (xml):
CustomerDAO (jak widać tutaj za każdym razem wywołuję tego EntityManagera gdy go potrzebuję. Dobrze wiedzieć, że da się to zrobić bardziej automatycznie :)Cytuj:
<?xml version="1.0" encoding="windows-1250"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schem...-beans-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schem...ontext-2.5.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schem...ng-mvc-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schem...ing-tx-3.0.xsd
">
<context:component-scan base-package="db_objects"></context:component-scan>
<mvc:annotation-driven />
<!--tx:annotation-driven transaction-manager="core.txManager" /-->
<context:component-scan base-package="controllers"/>
<bean id="viewResolver" class="org.springframework.web.servlet.view.Intern alResourceViewResolver">
<!--property name="viewClass" value="org.springframework.web.servlet.view.JstlVi ew"></property-->
<property name="prefix" value="/WEB-INF/jsp/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
<bean id="messageSource"
class="org.springframework.context.support.Resourc eBundleMessageSource">
<property name="basename" value="messages" />
</bean>
Jeśli nie masz nic przeciwko i znalazłbyś kiedyś chwilę na rzuceniem okiem na projekt to chętnie posłuchałbym opinii nt. czytelności kodu i nad czym powinienem popracować (jak mówiłem, chciałbym żeby to kiedyś trafiło do potencjalnych pracodawców), a obecnie aplikacja jest relatywnie mała bo dodaję nowe elementy na bieżąco ucząc się je wykorzystywać.Cytuj:
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.TypedQuery;
import org.springframework.stereotype.Component;
import db_objects.Customer;
@Component
public class CustomerDAO {
public void addCustomerToDatabase(Customer newCustomer) {
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("library-manager");
EntityManager entityManager = entityManagerFactory.createEntityManager();
entityManager.getTransaction().begin();
entityManager.persist(newCustomer);
entityManager.getTransaction().commit();
entityManager.close();
entityManagerFactory.close();
}
public List<Customer> getAllCustomers()
{
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("library-manager");
EntityManager entityManager = entityManagerFactory.createEntityManager();
TypedQuery<Customer> query = entityManager.createQuery("select e from Customer e", Customer.class);
List<Customer> customers = query.getResultList();
entityManager.close();
entityManagerFactory.close();
return customers;
}
}
Także proszę daj znać, mogę podesłać link do githuba na priv. :)
Pewnie zaraz ktoś napisze że możesz użyć Spring Boota i Spring Data JPA. Tym tandemem ograsz każdy twój use case w kilku linijkach kodu, ale nie rób tego. Dopóki nie ogarniesz filozofii springa, konfiguracji itd. to lepiej żebyś jak to się robiło kiedyś (i w sumie nadal robi w starszych appkach). Kiedyś tutaj wspomniałem że pierwszy raz springa stawiałem ze dwa tygodnie, ale nie żałuję. Piękne czasy :)
Co do twojej appki:
Na samym początku musisz się zdecydować czy chcesz mieć konfiguracje springa i beanów w XMLu(tak jak teraz) czy chcesz to mieć w kodzie javowym, wygląda to mniej więcej tak jak w tym linku który wrzuciłem wyżej.
Widzę, że ty używasz XMLa i adnotacji co się zdarza i jest dozwolone, nawet w moim projekcie tak jest, ale porzuciłbym na razie XMLa - ale jeżeli chcesz nadal to możesz zrobić identycznie jak tutaj: http://www.baeldung.com/the-persiste...-jpa#xmlconfig
To jest ten sam link co wyżej, masz tam pokazane jak stworzyć potrzebne beany (datasource, entity manager factory, transaction manager) w XMLu. Plink persistence context xml już nie będzie ci potrzebny.
Po takim zabiegu + dodaniu adnotacji @Transactional cały boilerplate metody addCustomerToDatabase() może być zastąpiony jedną♥linijką:
entityManager.persist(newCustomer);
Generalnie transakcje w springu to nie jest łatwa kwestia, ale jeżeli potrzebujesz czegoś tak prostego to na początku @Transactional na metodzie w DAO jest jak najbardziej ok.
Oprócz tego możesz DAO oznaczyć jako @Repository a nie @Component. Sama zmiana na razie nic nie powoduje oprócz tego że bezpośrednio, przez adnotacje, mówić za co odpowiada twoja klasa (repository != dao, ale jebać - twórcy springa nazwali to tak i już). Ale od którejś wersji(chyba 4.1, ale idk) jeżeli w kontekscie springowym zdefiniujesz beana 'exception translator' (jakoś tak, nie pamiętam) + oznaczysz swoje dao jako @Repository to wtedy spring zacznie przepisywać wyjątki specyficzne dla konkretnej implementacji (ty używasz pewnie hibernate jako implementacji JPA) na swoje własne. Nie jest to na razie jakaś duża zaleta dla Ciebie, ale warto pamiętać że takie coś istnieje.
Co do kodu - jasne, możesz wrzucić tutaj, możesz na PW.
Jak coś nie jest jasne to pisz, bozia nie obdarzyła mnie talentem pedagogicznym :D
Pytanie do pracujących torgów:
Macie u siebie w firmie blue/green deployment aplikacji które działają na VMkach (nie w kontenerach)? Jeżeli tak, to jak spawnujecie VMki? Jak dużo? Usuwanie VMki po deployu? Co z nimi robicie? Co robicie ze starymi VMkami? Oracie je?
Dzięki raz jeszcze za odpowiedź.
Mam połączonego xml'a z adnotacjami, głównie przez to, że różnych funkcjonalności uczyłem się z różnych źródeł i tak mi się to zlepiło w jakąś całość :D
Właściwie to chętnie pozbyłbym się xml'a bo średnio mi idzie praca na tych surowych beanach. Wydaje mi się, że to konfigurowanie aplikacji na dość niskim poziomie (w porównaniu do obecnych usprawnień). Z tego co rozumiem, to wyrzucając xml'a musiałbym odpowiadającą mu konfigurację przenieść do klasy javy, która opatrzona będzie adnotacją @Configuration?
Ogólnie jest możliwe wrzucenie takiej konfiguracji do pliku gdzie będę miał:
- automatycznego component scana
- annotation driven mvc
- skonfigurowanego viewResolvera (to żeby mi wyszukiwał widoku w WEB-INF/jsp z prefixem .jsp?
Spróbuję jutro zrobić sobie nowego brancha i przenieść tę konfigurację do pliku javy.
Tymczasem podsyłam Ci na pw (mam w linku dane osobowe i nie chce ich tak puszczać w świat).
Obecnie apka ma takie funkcje:
http://i63.tinypic.com/10446xh.png
A finalnie do końca tej wersji podstawowej chcę jeszcze dodać opcje wypożyczenia książek (osobna tabela, która zawiera datę wypożyczenia i oddania (obie zbierane automatycznie przy wykonywaniu danej operacji) i relacje z tabelą book i customer - wiadomo, do zwracania wyników :P). Potem może jakieś drobne poprawki wizualne, może paging przy większej ilości rekordów i jakaś refaktoryzacja.
#edit
Tak sobie spojrzałem na
http://i67.tinypic.com/347h7j5.png
I aż smutek, że po tylu dniach praktycznego kodu wyszło mi tylko tyle. Chciałbym tak klepać te aplikacje, jak Ci ludzie z tutoriali :P
I ileż mnie nerwów kosztowała każda czynność po kolei, coś pięknego ;d
Tak.
- @ComponentScan("twoj.pakiet")
- @EnableWebMvc
- http://stackoverflow.com/questions/1...ava-annotation
Resztę sobie sam poszukaj, ale generalnie wszystko to co możesz skonfigurować w xmlu możesz też skonfigurować w beanach oznaczonych jako @Configuration.
Co do rozwijania aplikacji - może jeszcze security wrzuć?
Super, dzieki :)
Wlasnie myslalem zeby kolejnym krokiem byl Security. Obecna wersje przerzucic jako dostepna tylko dla admina po zalogowaniu, a domyslnie dac mozliwosc tylko podgladu wypozyczonych ksiazek przez danego uzytkownika.
#edit
Udało się przenieść konfiguracje z xml do javy, są postępy!
Ile czasu zajęło wam od początku do ogarniania programowania? Z ciekawości pytam :)
Przez ogarnianie mam na myśli taki luz i juz nie uczenie się nowych rzeczy jeżeli chodzi o samą strukturę kodu tylko "kminienie" jak coś zrobić
Przesiadłem się niedawno z PHP na ABAPa. Minęły mniej więcej 3 miesiące zanim mogłem poczuć podobną płynność, co w PHP.
A od zera do php? Nigdy nie było zera, bo wcześniej na studiach było C i C++, w liceum pascal, a przed pascalem się bawiłem game-makerami (RPG Tsukuru!) i jak każde dziecko lat 90 lepiłem statyczne strony w htmlu. Bardzo trudno znaleźć zero, od 10 roku życia psułem sobie oczy przed kompem.
ogarnianie programowanie to zmiana sposobu myślenia, poczytaj o myśleniu analitycznym. Język to tylko narzędzie.
Tak samo w programowaniu nie chodzi o znanie wszystkiego na pamięć, tylko o umiejętność pozyskiwania informacji, dobre formułowanie pytań, kojarzenie różnych sytuacji z sobą
Pany znowu mam zagwozdkę z sqlem. Tym razem mam W każdej kategorii znaleźć najlepiej sprzedający się produkt. Doszedłem do takiego momentu i nie wiem co gdzie i jak -.-
obstawiam na coś banalnego czego po prostu z braku doświadczenia nie jestem w stanie wyłapać. Przy wpisaniu tego zapytania wyświetla mi każdy produkt oraz jego ilość. jak teraz wyświetlić ten którego jest najwięcej ? Myślałem ze funkcja MAX rozwiąże problem ale z tego co zauważyłem to nie robi oni żadnej różnicy.
Kod PHP:Select categoryname, productname, MAX(maxx) as NajlepiejSprzedajacy from (select ProductID, sum(productid) as maxx from dbo.OrderDetails od group by productid) od inner join dbo.Products p on od.productid=p.ProductID inner join dbo.Categories as C on p.CategoryID=c.CategoryID group by CategoryName,od.maxx,ProductName
Możesz użyc podzapytania
@Maro14 ;
Jak jeszcze się z tym męczysz to zerknij w spoiler
select CategoryName, ProductName, Price
from Products as pr inner join Categories as cat on cat.CategoryID = pr.CategoryId
where Price = ( Select max( Price ) from Products where categoryID = pr.CategoryId )
jest tu ktoś obeznany z biblioteką PIL i pythonem? potrzebuję pomocy na szybko ;)
Ktoś mi powie czemu to wywala że program przestał działać?Kod:#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <math.h>
int main()
{
FILE *dane1, *dane2, *wynik;
dane1=fopen("dane1.txt","r");
if(dane1==NULL) {return 1;}
dane1=fopen("dane2.txt","r");
if(dane2==NULL) {return 1;}
wynik=fopen("wynik.txt","w");
if(wynik==NULL) {return 1;}
int l1,l2,x;
for(x=0;x=100;x=x+1)
{
if(feof(dane1)!=0)
{break;}
fscanf(dane1,"%d",&l1);
fscanf(dane2,"%d",&l2);
if(l2%2==0)
{fprintf(wynik,"l1 %d\n",l1);}
}
fclose(dane1);
fclose(dane2);
fclose(wynik);
system ("pause");
return 0;
}
Program ma czytać dane z 2 plików i jeżeli spełnia warunek to zapisywać liczbe z 1 pliku do plinu wynik
mam porobione dane1 i dane2
nie wiem co tu jeszcze jest do poprawy
ja jebix dzięki xD