- Facebook és Messenger
- Sokat fogyaszt az AI, egyre több az adatközpont, kell az atomenergia
- Aliexpress tapasztalatok
- Letartóztatták a bitcoin-Jézust
- Crypto Trade
- Az iPadOS-re írt appokra is díjat vet ki az Apple
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Otthoni hálózat és internet megosztás
- Microsoft Excel topic
- YouTube
-
IT café
Új hozzászólás Aktív témák
-
Ispy
veterán
válasz Netszemete #16700 üzenetére
Nézd, ha ezek után sem érted, hogy miért így megy ahogy, akkor tényleg nem kell redditelned.
De most tényleg ezen hisztizel, hogy eltűnt egy hozzászólásod? Nagyon alacsonyan van az ingerküszöböd...ha ilyeneken kiakadnék, akkor már rég elmentem volna inkább péknek vagy egy gyárba a futószalag mellé.
"Debugging is like being the detective in a crime movie where you're also the murderer."
-
Silεncε
őstag
válasz Netszemete #16700 üzenetére
Ezeket a botokat ki készíti?
Bárki, akár te is. API documentation: [link]
Ki tervezte ilyenre a redditet?
Nyilván az üzemeltetői. Az viszont, hogy a moderáció pl hogy működik (egy bizonyos ponton túl) nem sok közük van.
-
dabadab
titán
válasz Netszemete #16703 üzenetére
Hogy a "hiszti" szót használod egy egyébként szakmai témában, az csak téged minősít.
Szerintem nem szakmai témában használta, hanem az általad itt rendezett... hisztit nevezte meg.
DRM is theft
-
Ispy
veterán
válasz Netszemete #16703 üzenetére
Nézd, nem én írtam be a programozás topikba, hogy eltüntahozzászólásom, szarredit, sohatöbbet, énsokkaljobbatcsinálnék.
"Debugging is like being the detective in a crime movie where you're also the murderer."
-
zsolti_20
senior tag
Sziasztok,
Egy egyszerű programon dolgozok C#-ban, ahol egy filet másolok egyik mappából a másikba. Ehhez szeretnék egy időzítőt használni.
Véleményetek szerint milyen megoldással lehet a legelegánsabb? Igazából csak annyira van szükségem, hogy egy végtelen ciklusba kerüljön be, és hajtsa végre a benne lévő utasításokat minden másodpercben.
[ Szerkesztve ]
-
Ispy
veterán
válasz zsolti_20 #16706 üzenetére
Időzítő?
Azért a minden másodpercet meggondolnám, hogy jó ötlet-e.
De ahogy nézem van konyhakész megoldás is rá: FileSystemWatcher Class
Gugli első találat. Ha már igazi programozó nem vagyok és nem vágom séróból a .net keretrendszert, legalább keresni még tudok.
[ Szerkesztve ]
"Debugging is like being the detective in a crime movie where you're also the murderer."
-
pmonitor
aktív tag
Van ez a kód:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <sys/timeb.h>
long timediff(struct timeb* start, struct timeb* end)
{
long seconds;
seconds = (long)(end->time - start->time);
start->millitm = end->millitm - start->millitm;
if (0 > start->millitm) {
start->millitm += 1000;
seconds--;
}
return seconds;
}
int patoi(const char* str)
{
char* temp = 0, neg = 0;
int i;
while (isspace(*str)) str++;
if (*str == '-')
{
str++;
neg = 1;
}
else if (*str == '+') str++;
while (*str == '0') str++;
temp = str;
while (*temp)
{
if (!(*temp >= '0' && *temp <= '9')) break;
temp++;
}
temp--;
i = pow(10, temp - str);
int ret = 0;
for (; temp >= str; str++)
{
if (*str >= '0' && *str <= '9')
{
ret += ((*str - '0') * i);
}
else break;
i /= 10;
}
if (neg) ret *= -1;
return ret;
}
int main()
{
char str[] = "+16258156";
int val = 0, db = 0;
struct timeb start, end;
long seconds, seconds2;
int militm, militm2;
size_t i = 0;
ftime(&start);
for (i = 0; i < 1000000000; i++)
{
val = atoi(str);
//printf("%d\n", val);
//break;
}
ftime(&end);
seconds = timediff(&start, &end);
militm = start.millitm;
ftime(&start);
for (i = 0; i < 1000000000; i++)
{
val = patoi(str);
//printf("%d\n", val);
//break;
}
ftime(&end);
seconds2 = timediff(&start, &end);
militm2 = start.millitm;
printf("Eltelt ido: %ld.%03d masodperc\n", seconds, militm);
printf("Eltelt ido: %ld.%03d masodperc\n", seconds2, militm2);
return 0;
}Itt az atoi(...) stabilan 18 sec. körül, az általam készített patoi(...) stabilan 3 sec. alatt fut le. Létezik ez? Ha igen, akkor benéztem valamit? Ahogy néztem, azonos inputra azonos kimenetet ad. Vagy én lennék ilyen zseni??
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
MODERÁTOR
válasz pmonitor #16708 üzenetére
Azt már látatlanban kizárom, hogy zseni lennél.
Szerk.: gyanítom, hogy a gyári atoi implementáció van olyan idős, hogy kizárt, hogy ne lenne optimalizált.
[ Szerkesztve ]
"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."
-
pmonitor
aktív tag
válasz kovisoft #16716 üzenetére
Szomorú vagyok.
Az 1. pontoddal még nem tudtam mit kezdeni. A 2. pontoddal igen, úgy, hogy a végén printf(...)-el kiírattam val értékét. Módosítással most kb. azonos időben futnak le(az enyém határozottan gyorsabb). Jelenleg ez a függvényem:
int patoi(const char* str)
{
char* temp = 0, neg = 0;
int i;
while (isspace(*str)) str++;
if (*str == '-')
{
str++;
neg = 1;
}
else if (*str == '+') str++;
while (*str == '0') str++;
temp = str;
while (*temp)
{
if (!(*temp >= '0' && *temp <= '9')) break;
temp++;
}
temp--;
i = 1;
int ret = 0;
for (; temp >= str; temp--)
{
if (*temp >= '0' && *temp <= '9')
{
ret += ((*temp - '0') * i);
}
else break;
i *= 10;
}
if (neg) ret *= -1;
return ret;
}[ Szerkesztve ]
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz kovisoft #16716 üzenetére
Azt hiszem, hogy sikerült mind a 2 pontodat kiküszöbölnöm:
int patoi(const char* str)
{
char* temp = 0, neg = 0;
int i;
while (isspace(*str)) str++;
if (*str == '-')
{
str++;
neg = 1;
}
else if (*str == '+') str++;
while (*str == '0') str++;
temp = str;
while (*temp)
{
if (!(*temp >= '0' && *temp <= '9')) break;
temp++;
}
temp--;
i = 1;
int ret = 0;
for (; temp >= str; temp--)
{
if (*temp >= '0' && *temp <= '9')
{
ret += ((*temp - '0') * i);
}
else break;
i *= 10;
}
if (ret < 0 && !neg) ret = INT_MAX;
else if (neg)
{
if (ret == INT_MAX)
{
char arr[11];
strncpy(arr, str, 10);
arr[10] = '\0';
if (!strcmp(arr, "2147483647")) ret = INT_MIN + 1;
else ret = INT_MIN;
}
else ret *= -1;
}
return ret;
}A futásidő kb. ugyanaz, mint az atoi(..)-nek. Általában kicsit gyorsabb. Mégsem lettem zseni.
De azért nézzétek át légyszi, hogy ebben találsz-e hibát.http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
kovisoft
őstag
válasz pmonitor #16718 üzenetére
Csak gyorsan átfutottam, úgyhogy nem biztos, hogy igazam van, de szerintem INT_MAX-nál nagyobb vagy INT_MIN-nél kisebb számokra továbbra is vissza tud adni valami szemetet. Az i 10-zel szorozgatva ilyenkor egyszercsak túlcsordul, aztán akármi is előállhat a ret-ben.
Az INT_MIN esetet most nem látom teljesen át, gondolom, kipróbáltad. A kódból nekem úgy tűnik, hogy INT_MIN esetén (mivel nemnegatív számokkal dolgozol, ezért) túlcsordul, de lehet, hogy aztán valahogy lekezeled ezt a túlcsordulást.
Azért az az
strcmp(arr, "2147483647")
eléggé feltételezi, hogy 32 bites intjeid vannak... -
pmonitor
aktív tag
Igaz.
De azért implementálni tudtam az ugyanakkora sebességet, mint az atoi(...). A kovisoft által felsorolt hibák:
1.: általánosságban nem csökkentik a sebességét a kódomnak
2.: a kódom végén található if-ekkel, és az azokban lévő tartalom módosításával orvosolhatók. Ezek csak igen speciális esetekben lassítják a kódom. INT_MIN, kisebb, mint INT_MIN, INT_MAX, nagyobb, mint INT_MAX. Tehát nem sok ilyen eset van.De aki megérti a működési elvet, Ő már tudja, hogy miért szoktam mondani, hogy "81236" == "000081236"-al, ha számokról beszélünk.
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
De az itoa(...) esetén sikerült ~ harmadára csökkentenem a futási időt(még úgy is, hogy + funkciót tettem bele).
Mondjuk tény, hogy az atoi(..)-t többször kell használni, mint az itoa(..)-t. Ezért érthető, hogy erre sokkal jobban odafigyeltek a fejlesztők. De jobb kódot biztos, hogy nem egyszerű csinálni. Csak ki tudja, hogy az STL melyikből tartalmaz többet: olyan lassúból, mint az itoa(), vagy olyan gyorsból, mint az atoi()? Ezt ki tudja megmondani? Arról nem is beszélve, hogy én csak win-en VS-ben teszteltem ezt a 2 függvényt is.
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
MODERÁTOR
válasz pmonitor #16723 üzenetére
Engedd el. Első implementációd sem lett jó és utána gyorsabb sem. Okkal van. Nem fogod feltalálni a spanyol viaszt. Ezek jól bevállt régi dolgok amiket elfogadunk és használunk. Ennyi.
[ Szerkesztve ]
"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."
-
kovisoft
őstag
válasz Netszemete #16725 üzenetére
Lehet, hogy igazad van, én a legelső google találatot néztem, ott ezt írják:
"This function returns the converted integral number as an int value. If no valid conversion could be performed, it returns zero."
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Apple iPhone 12 Pro Max, Pacific Blue, 128Gb, független 86% akku
- Szuper Akció:Igényeseknek-Exkluziv-12Genes-Core i7-Dell Latitude 5430-Harmad áron-garival!!!
- Western Digital 6TB NasWare 3.0 WD60EFRX-68l0bn1 keveset használt eladó.
- ÚJ Under Armour HOVR Machina 2 futócipő,sportcipő 44-es méretben eladó
- Teljes Playstation VR szett PS5 adapterrel
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Promenade Publishing House Kft.
Város: Budapest