Search Results

Search found 71537 results on 2862 pages for 'virtual com port'.

Page 740/2862 | < Previous Page | 736 737 738 739 740 741 742 743 744 745 746 747  | Next Page >

  • Imagine Cup : Microsoft annonce les gagnants qui représenteront la France lors de la finale mondiale

    Imagine Cup : Microsoft annonce les gagnants qui représenteront la France lors de la finale mondiale de Juillet en Pologne Depuis 8 ans, l'Imagine Cup de Microsoft, la plus grande compétition mondiale pour les étudiants, est disputée par des équipes d'informaticiens en herbe de plus de 100 nationalités différentes. Cette année, ce sont plus de 225 000 étudiants qui se sont mobilisés pour ce concours, dont la finale mondiale se tiendra en Pologne xxxxxx En Mai, la finale France du championnant a eu lieu au siège parisien de Microsoft. A cette occasion, une vingtaine d'équipes d'étudiants venants de toute la France se sont affrontées en présentant leurs projets au jury. Ce sont les catégories «*Concepti...

    Read the article

  • Ubuntu One Music Store: Tops or Flop?

    <b>Linux Pro Magazine:</b> "Thus Canonical is implementing the cloud in its context. The DRM-free songs in MP3 format with a bitrate of at least 256 kbits/second are not loaded on the local machine, but in the Ubuntu One cloud."

    Read the article

  • AdWords : Google s'attaque aux publicités douteuses avec une politique de contrôle et de modération contre les annonces frauduleuses

    AdWords : Google s'attaque aux publicités douteuses Et met en place une politique de contrôle et de modération pour traquer les annonces frauduleuses Via un post publié sur son blog officiel, Google a révélé avoir amélioré sa politique de contrôle et de modération pour lutter contre toutes les annonces AdWords douteuses (vente de produits illicites et nocifs, annonces trompeuses,...). Google AdWords permet aux entreprises de créer leurs annonces publicitaires et de les diffuser sur Google. L'entreprise doit créer une annonce et choisir des mots ou des expressions clés en rapport avec son activité. L'internaute, lorsqu'il effectue une recherche à l'aide de l'un de ces mots clés, voit s'af...

    Read the article

  • Choix technologique : Spring 3.0 ou Java EE 6 pour vos projets Java en 2010 ?

    Fin 2009, ce sont deux solutions très attendues qui ont finalement été livrées : D'un coté Spring 3.0, framework déjà fort utilisé en entreprise, et qui arrive avec quelques nouveautés : Support de Rest, Expression Language, .. Principal atout : Il est déjà utilisable sur des serveurs omniprésents en production (Tomcat, Websphere 6.1,..) De l'autre coté, Java EE 6. Un nouvelle version du standard, beaucoup plus légère et souple que les anciennes versions. Il propose également un profil Web, qui propose des fonctionnalités fort similaire à ce qui est proposé par Spring (EJB Lite, Injection de dépendances, ..). Pour l'heure, la seule implémentation disponible est Glassfish. De votre coté, quelle solution utilise...

    Read the article

  • PySide 1.0.0 disponible en version finale, le binding Python de Qt supporte aussi Qt Quick

    PySide 1.0.0 en version finale Le binding Python de Qt supporte aussi Qt Quick Mise à jour du 04/03/11 Quelques jours après la sortie de Qt 4.7.2, le binding Python promu par Nokia, PySide, se met sur son 31 et affiche la version finale de la 1.0.0, après un long cycle de développement, deux semaines après la release candidate, la communauté ayant apporté énormément au développement de cette version. S'achève donc ainsi la période de correction des bogues, des régressions et des autres dysfonctionnements en tout genre, l'ajout de nouvelles fonctionnalités va pouvoir reprendre. Notamment, il est prévu pour cette série d'ajouter le support de Python 3. A...

    Read the article

  • I was stuck in implementing Simple Ftp with Winsock [migrated]

    - by user67449
    I want to implement a SimpleFtp with Winsock. But I was stuck in the maybe the file stream reading and writing. This is the Server. #include <WinSock2.h> #include <memory.h> #include <stdio.h> #include <iostream> using namespace std; #pragma comment(lib, "ws2_32.lib") #define MAX_FILE_NAME 100 #define DATA_PACK_SIZE 80*1000 // ??DataPack?????80KB #define SOCKKET_BUFFER_SIZE 80*1000 // socket??? #define FILE_BUFFER_SIZE DATA_PACK_SIZE-MAX_FILE_NAME-4*sizeof(int)-sizeof(u_long) //?????,??,??????content????? #define CONTENT_SIZE FILE_BUFFER_SIZE // DataPack?????content??? // Define a structure to hold the content of a file typedef struct FilePack{ char fName[MAX_FILE_NAME]; // File's name int fLen; // File's length int packNum; // Number of the DataPack int packLen; // DataPack's length int packCount; int contenLen; // the content length the DataPack actually holds u_long index; // ?????????? char content[CONTENT_SIZE]; // DataPack?????? }DataPack, *pDataPack; void WinsockInitial(){ WSADATA wsaData; WORD wVersionRequested; int err; wVersionRequested=MAKEWORD(2,2); err=WSAStartup(wVersionRequested, &wsaData); if(err!=0){ cout<<"Error at WSAStartup()."<<endl; exit(0); } if( LOBYTE(wsaData.wVersion)!=2 || HIBYTE(wsaData.wVersion)!=2 ){ cout<<"Error at version of Winsock. "<<endl; WSACleanup(); exit(0); } } void SockBind(SOCKET sock, int port, sockaddr_in &addrsock){ addrsock.sin_family=AF_INET; addrsock.sin_port=htons(port); addrsock.sin_addr.S_un.S_addr=htonl(INADDR_ANY); if( bind(sock, (sockaddr*)&addrsock, sizeof(addrsock)) == SOCKET_ERROR ){ cout<<"Error at bind(). Error: "<<GetLastError()<<endl; closesocket(sock); WSACleanup(); exit(0); } } void SockListen(SOCKET sock, int bak){ int err=listen(sock, bak); if(err==SOCKET_ERROR){ cout<<"Error at listen()."<<WSAGetLastError()<<endl; closesocket(sock); WSACleanup(); exit(0); } } int SockSend(DataPack &dataPack, SOCKET sock, char *sockBuf){ int bytesLeft=0, bytesSend=0; int idx=0; bytesLeft=sizeof(dataPack); // ?DataPack?????sockBuf??? memcpy(sockBuf, &dataPack, sizeof(dataPack)); while(bytesLeft>0){ bytesSend=send(sock, &sockBuf[idx], bytesLeft, 0); if(bytesSend==SOCKET_ERROR){ cout<<"Error at send()."<<endl; return 1; } bytesLeft-=bytesSend; idx+=bytesSend; } return 0; } int GetFileLen(FILE *fp){ // ?????? if(fp==NULL){ cout<<"Invalid argument. Error at GetFileLen()."<<endl; exit(0); } fseek(fp, 0, SEEK_END); int tempFileLen=ftell(fp); fseek(fp, 0, SEEK_SET); return tempFileLen; } int main(){ int err; sockaddr_in addrServ; int port=8000; // Initialize Winsock WinsockInitial(); // Create a socket SOCKET sockListen=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if(sockListen==INVALID_SOCKET){ cout<<"Error at socket()."<<endl; WSACleanup(); return 1; } // Bind the socket. SockBind(sockListen, port, addrServ); // Listen for incoming connection requests cout<<"Waiting for incoming connection requests..."<<endl; SockListen(sockListen, 5); // Accept the connection request. sockaddr_in addrClient; int len=sizeof(addrClient); SOCKET sockConn=accept(sockListen, (sockaddr*)&addrClient, &len); if(sockConn!=INVALID_SOCKET){ cout<<"Connected to client successfully."<<endl; } // Set the buffer size of socket char sockBuf[SOCKKET_BUFFER_SIZE]; int nBuf=SOCKKET_BUFFER_SIZE; int nBufLen=sizeof(nBuf); err=setsockopt(sockConn, SOL_SOCKET, SO_SNDBUF, (char*)&nBuf, nBufLen); if(err!=0){ cout<<"Error at setsockopt(). Failed to set buffer size for socket."<<endl; exit(0); } //??????????? err = getsockopt(sockConn, SOL_SOCKET, SO_SNDBUF, (char*)&nBuf, &nBufLen); if( SOCKKET_BUFFER_SIZE != nBuf){ cout<<"Error at setsockopt(). ?socket????????"<<endl; closesocket(sockListen); closesocket(sockConn); WSACleanup(); exit(0); } //------------------------------------------------------------------------// DataPack dataPackSend; memset(&dataPackSend, 0, sizeof(dataPackSend)); int bytesRead; int bytesLeft; int bytesSend; int packCount; // Counts how many DataPack needed FILE *frp; // Used to read if(strcpy_s(dataPackSend.fName, "music.mp3")!=0){ cout<<"Error at strcpy_s()."<<endl; return 1; } // Open the file in read+binary mode err=fopen_s(&frp, dataPackSend.fName, "rb"); if(err!=0){ cout<<"Error at fopen_s()."<<endl; return 1; } char fileBuf[FILE_BUFFER_SIZE]; // Set the buffer size of File if(setvbuf(frp, fileBuf, _IONBF, FILE_BUFFER_SIZE)!=0){ cout<<"Error at setvbuf().Failed to set buffer size for file."<<endl; closesocket(sockListen); closesocket(sockConn); WSACleanup(); exit(0); } // Get file's length int fileLen=GetFileLen(frp); cout<<"File ???:"<<fileLen<<" bytes."<<endl; // Calculate how many DataPacks needed packCount=ceil( (double)fileLen/CONTENT_SIZE ); cout<<"File Length: "<<fileLen<<" "<<"Content Size: "<<CONTENT_SIZE<<endl; cout<<"???"<<packCount<<" ?DataPack"<<endl; int i=0; for(i=0; i<packCount; i++){ //?????dataPackSend????? memset(&dataPackSend, 0, sizeof(dataPackSend)); // Fill the dataPackSend if(strcpy_s(dataPackSend.fName, "abc.txt")!=0){ cout<<"Error at strcpy_s()."<<endl; return 1; } dataPackSend.packLen=DATA_PACK_SIZE; dataPackSend.fLen=fileLen; dataPackSend.packCount=packCount; if( packCount==1 ){ //??DataPack??? bytesRead=fread(fileBuf, 1, dataPackSend.fLen, frp); dataPackSend.contenLen=dataPackSend.fLen; memcpy(dataPackSend.content, fileBuf, bytesRead); dataPackSend.packNum=0; //???????DataPack // ?????dataPackSend?Client? if( SockSend(dataPackSend, sockConn, sockBuf)==0 ){ cout<<"??? "<<dataPackSend.packNum<<" ?DataPack"<<endl; } }else if( packCount>1 && i<(packCount-1) ){ // ???(???????) bytesRead=fread(fileBuf, 1, CONTENT_SIZE, frp); dataPackSend.contenLen=CONTENT_SIZE; memcpy(dataPackSend.content, fileBuf, bytesRead); dataPackSend.packNum=i; //?dataPackSend??????Client? if( SockSend(dataPackSend, sockConn, sockBuf)==0 ){ cout<<"??? "<<dataPackSend.packNum<<" ?DataPack."<<endl; } }else{ // ????? bytesRead=fread(fileBuf, 1, (dataPackSend.fLen-i*CONTENT_SIZE), frp); dataPackSend.contenLen=dataPackSend.fLen-i*CONTENT_SIZE; memcpy(dataPackSend.content, fileBuf, bytesRead); dataPackSend.packNum=i; //?dataPackSend???Client? if( SockSend(dataPackSend, sockConn, sockBuf)==0 ){ cout<<"??? "<<dataPackSend.packNum<<" ?DataPack."<<endl; } } } fclose(frp); closesocket(sockListen); closesocket(sockConn); WSACleanup(); return 0; } And this is Client. #include <WinSock2.h> #include <memory.h> #include <stdio.h> #include <iostream> using namespace std; #pragma comment(lib, "ws2_32.lib") #define MAX_FILE_NAME 100 #define DATA_PACK_SIZE 80*1000 // ??DataPack?????80KB #define SOCKKET_BUFFER_SIZE 80*1000 // socket??? #define FILE_BUFFER_SIZE DATA_PACK_SIZE-MAX_FILE_NAME-4*sizeof(int)-sizeof(u_long) //?????,??,??????content????? #define CONTENT_SIZE FILE_BUFFER_SIZE // DataPack?????content??? // Define a structure to hold the content of a file typedef struct FilePack{ char fName[MAX_FILE_NAME]; // File's name int fLen; // File's length int packNum; // Number of the DataPack int packLen; // DataPack's length int packCount; //DataPack??? int contenLen; // the content length the DataPack actually holds u_long index; // ?????????? char content[CONTENT_SIZE]; // DataPack?????? }DataPack, *pDataPack; void WinsockInitial(){ WSADATA wsaData; WORD wVersionRequested; int err; wVersionRequested=MAKEWORD(2,2); err=WSAStartup(wVersionRequested, &wsaData); if(err!=0){ cout<<"Error at WSAStartup()."<<endl; exit(0); } if( LOBYTE(wsaData.wVersion)!=2 || HIBYTE(wsaData.wVersion)!=2 ){ cout<<"Error at version of Winsock. "<<endl; WSACleanup(); exit(0); } } int SockRecv(SOCKET sock, char *sockBuf){ int bytesLeft, bytesRecv; int idx=0; bytesLeft=DATA_PACK_SIZE; while(bytesLeft>0){ bytesRecv=recv(sock, &sockBuf[idx], bytesLeft, 0); if(bytesRecv==SOCKET_ERROR){ cout<<"Error at recv()."<<endl; return 1; } bytesLeft-=bytesRecv; idx+=bytesRecv; } return 0; } int main(){ int err; sockaddr_in addrServ; int port=8000; // Initialize Winsock WinsockInitial(); // Create a socket SOCKET sockClient=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if(sockClient==INVALID_SOCKET){ cout<<"Error at socket()."<<endl; WSACleanup(); return 1; } // Set the buffer size of socket char sockBuf[SOCKKET_BUFFER_SIZE]; int nBuf=SOCKKET_BUFFER_SIZE; int nBufLen=sizeof(nBuf); err=setsockopt(sockClient, SOL_SOCKET, SO_RCVBUF, (char*)&nBuf, nBufLen); if(err!=0){ cout<<"Error at setsockopt(). Failed to set buffer size for socket."<<endl; exit(0); } //??????????? err = getsockopt(sockClient, SOL_SOCKET, SO_RCVBUF, (char*)&nBuf, &nBufLen); if( SOCKKET_BUFFER_SIZE != nBuf){ cout<<"Error at getsockopt(). ?socket????????"<<endl; closesocket(sockClient); WSACleanup(); exit(0); } // Connect to the Server addrServ.sin_family=AF_INET; addrServ.sin_port=htons(port); addrServ.sin_addr.S_un.S_addr=inet_addr("127.0.0.1"); err=connect(sockClient, (sockaddr*)&addrServ, sizeof(sockaddr)); if(err==SOCKET_ERROR){ cout<<"Error at connect()."<<GetLastError()<<endl; closesocket(sockClient); WSACleanup(); return 1; }else{ cout<<"Connected to the FTP Server successfully."<<endl; } /* int i=0; int bytesRecv, bytesLeft, bytesWrite; int packCount=0, fLen=0; DataPack dataPackRecv; //?????? SockRecv(sockClient, sockBuf); memcpy(&dataPackRecv, sockBuf, sizeof(dataPackRecv)); cout<<"???? "<<dataPackRecv.packNum<<" ?DataPack."<<endl; cout<<"?DataPack??fName????: "<<dataPackRecv.fName<<endl; //??????? packCount=dataPackRecv.packCount; cout<<"?? "<<packCount<<" ?DataPack."<<endl; fLen=dataPackRecv.fLen; // Create a local file to write into FILE *fwp; err=fopen_s(&fwp, dataPackRecv.fName, "wb"); if(err!=0){ cout<<"Error at creat fopen_s(). Failed to create a local file to write into."<<endl; return 1; } // Set the buffer size of File char fileBuf[FILE_BUFFER_SIZE]; if(setvbuf(fwp, fileBuf, _IONBF, FILE_BUFFER_SIZE)!=0){ cout<<"Error at setvbuf().Failed to set buffer size for file."<<endl; memset(fileBuf, 0, sizeof(fileBuf)); closesocket(sockClient); WSACleanup(); exit(0); } //???????content???? memcpy(fileBuf, dataPackRecv.content, sizeof(dataPackRecv.content)); bytesWrite=fwrite(fileBuf, 1, sizeof(fileBuf), fwp); if(bytesWrite<sizeof(fileBuf)){ cout<<"Error at fwrite(). Failed to write the content of dataPackRecv to local file."<<endl; } //?????packCount-1????????????????? for(int i=1; i<packCount; i++){ // ????????? memset(sockBuf, 0, sizeof(sockBuf)); memset(&dataPackRecv, 0, sizeof(dataPackRecv)); memset(fileBuf, 0, sizeof(fileBuf)); SockRecv(sockClient, sockBuf); memcpy(&dataPackRecv, sockBuf, sizeof(dataPackRecv)); cout<<"???? "<<dataPackRecv.packNum<<" ?DataPack."<<endl; //???? memcpy(fileBuf, dataPackRecv.content, dataPackRecv.contenLen); bytesWrite=fwrite(fileBuf, 1, dataPackRecv.contenLen, fwp); if(bytesWrite<dataPackRecv.contenLen){ cout<<"Error at fwrite(). Failed to write the content of dataPackRecv to local file."<<endl; } } if( (i+1)==packCount ){ cout<<"??DataPack????????!"<<endl; } fclose(fwp); closesocket(sockClient); WSACleanup(); return 0;*/ }

    Read the article

  • "Nos petits trucs utiles de développeurs", et si on partageait nos astuces et nos trouvailles de programmation ?

    Bonjour J'espère que je poste dans le bon forum, sinon merci à la modération de rediriger ce thread. Depuis longtemps, j'avais envie de créer quelque chose de très utile pouvant servir à tout le monde et surtout soit au niveau débutant, mais puisse, pourquoi pas, également servir aux autres. Voici donc un thread entièrement consacré aux petits trucs sans prétention bêtes comme choux, mais très efficaces à l'usage. Il ne s'agit en aucun cas de code compliqué ni de manipulation de haut vol ; tout le contraire et accessible à tous. Je vous invite pour notre plus grand plaisir de développeurs d'ajouter v...

    Read the article

  • Open présente MyJOBOpen, son premier salon virtuel axé sur le recrutement dans le numérique se tiendra du 02 au 08 juin 2014

    Open présente MyJOBOpen, son premier salon virtuel axé sur le recrutement dans le numérique se tiendra du 02 au 08 juin 2014 Open, acteur de référence des Entreprises de Services du Numérique françaises qui revendique plus de 3 000 collaborateurs lance MyJOBbyOpen, son premier salon virtuel axé sur le recrutement dans le numérique. A l'instar d'un salon physique, la plateforme a pour vocation de faire mieux connaître l'entreprise auprès de candidats, mais également de remplir un de ses objectifs...

    Read the article

  • Retour de fonctions ou exceptions ? Une traduction de LittleWhite

    Bonjour à tous, Lorsqu'une erreur se produit dans une fonction, un développeur C++ a deux solutions : il peut soit retourner une valeur indiquant une erreur (par exemple avec return false; ou return ERROR_CODE;), soit lancer une exception. Mais quelle est la meilleure approche ? Dans cet article, Aaron Lahman apporte des éléments de réponse à cette question cruciale en regardant les différences en terme de lisibilité et d...

    Read the article

  • Le build Milestone 2 de Windows 8 sur le point d'être achevé, une version bêta de l'OS cet été ?

    Le build Milestone 2 de Windows 8 sur le point d'être achevé, une version bêta de l'OS cet été ? Mise à jour du 21.02.2011 par Katleen La développement de Windows 8, ou Windows Next, suit son chemin. D'après plusieurs rumeurs qui évoquent des sources internes anonymes ayant confirmé l'information, Microsoft aurait terminé le deuxième build Milestone. En effet, après plusieurs versions compilées, dont 6.2.7928.0.winmain_win8m2.110214-1825, 6.2.7929.0.winmain_win8m2.110215-1802 et 6.2.7930.0.winmain_win8m2.110217-1825 ; vendredi dernier à vu poindre la mouture ?6.2.7947.0.winmain_win8m2_escrow.110218-1608″. Avec tous ces builds Milestone 2 compilés, le build M2 final est tout proc...

    Read the article

  • Java : Oracle à son tour attaqué en justice, un éditeur de Middleware dénonce une "violation massive de brevets" dans WebLogic et Glassfish

    Java : Oracle attaqué en justice par un éditeur de Middleware WebLogic Server et Glassfish Server visés Le fournisseur de solution middleware Java Thought vient de lancer une procédure contre Oracle pour « violation massive de brevets ». La plainte a été déposée le 31 Octobre. D'après l'explication de l'éditeur, Thought a créé une technologie (un « mapping layer »), pour sauvegarder des objets et des tables, qui a grandement simplifié la gestion des données persistantes. Cette technologie brevetée a ensuite été intégrée dans son outil maison CocoBase en 1997. Thought a alors reçu 28 demandes de versions d'évaluations de CocoBase émanant de mails dont les adresses étai...

    Read the article

  • Nokia annonce les prochaines versions de QtWebKit, QtWebKit 2.1 apportera le support de HTML5 sur Symbian et MeeGo

    Nokia annonce les prochaines versions de QtWebKit QtWebKit 2.1 apportera le support de HTML5 sur Symbian et MeeGo Mise à jour du 08/03/2011 par dourouc05 Après avoir été projet pionnier de la modularisation de Qt, qui devrait arriver pour Qt 4.8, QtWebKit fait enfin à nouveau entendre parler de lui, en annonçant les prochaines versions. QtWebKit 2.1 se focalisera sur le support des plateformes Nokia (c'est-à-dire Symbian et MeeGo), toujours en se basant sur Qt 4.7. Il corrigera un certain nombre de bogues et apportera le support d'un certain nombre d'éléments de HTML5. QtWebKit 2.2 sera, quant à lui, dirigé vers Qt...

    Read the article

  • Troisième trimestre au delà des prévisions chez Google, son action dépasse les 1000 dollars pour la première fois de son histoire

    Troisième trimestre au delà des prévisions chez Google, son action dépasse les 1000 dollars pour la première fois de son histoire Google a publié des résultats supérieurs à ses prévisions pour son troisième trimestre. Pour la première fois de son histoire, l'action Google est passé au-dessus des 1000 dollars ce vendredi 18 octobre. Rappelons qu'en 2004, l'action valait 100 dollars. De plus, son bénéfice net a augmenté de 36% et la firme enregistre 2,97 milliards de dollars contre 2,18 milliards...

    Read the article

  • La traduction dynamique des applications basées sur Qt

    Permettre la traduction facile des interfaces utilisateur est l'un des points forts de Qt. Le support de l'unicode dès les fondations et une infrastructure pour l'internationalisation permettent de travailler facilement dans un environnement internationalisé. Un article de Johan Thelin traduit par Guillaume Belz.

    Read the article

  • LEVAN : un système informatique en mesure d'apprendre tout sur n'importe quoi, un pas en avant pour l'IA grâce à la supervision par le web ?

    LEVAN : un système informatique en mesure d'apprendre tout sur n'importe quoi un pas en avant pour l'IA grâce à la supervision par le webNombreux sont les domaines de l'informatique qui connaissent un essor important et une évolution continue grâce aux différents travaux de recherches. C'est le cas, par exemple, de l'intelligence artificielle, qui est portée par des projets innovants comme le projet LEVAN.Ce dernier est un système informatique capable d'apprendre par soi-même différents concepts...

    Read the article

  • Creating an Underwater Scene in Blender- Part 3

    <b>Packt:</b> "From the point we started our scene, we haven't tried any test renders yet to see how our underwater environment looks and I know you're all so eager to try and press that RENDER button (so am I), but let's make sure that we don't waste a second of our time by rendering something that's not worth the button press at all."

    Read the article

  • IE 10 dépasse IE 9 sur le marché des navigateurs, Firefox stabilisé, Chrome gagne timidement du terrain

    IE 10 dépasse IE 9 sur le marché des navigateurs, Firefox stabilisé, Chrome gagne timidement du terrainDans son rapport, l'entreprise analytique web Net Applications révèle qu'Internet Explorer continue de dominer largement le marché des navigateurs. Désormais Internet Explorer représente 56,15 % des navigateurs utilisés, loin devant Firefox et ses 19,15 %, Chrome (17,17 %), Safari (5,5 %) ou Opera (1,6 %). Une bonne nouvelle pour Microsoft dont le navigateur détenait 54 % des parts de marché en juin 2012. Dans le détail, on observe une percée significative d'IE 10 qui a gagné 4,26 % et représente...

    Read the article

  • Excel : les filtres avancés ou élaborés

    Outil puissant et finalement peu connu par les utilisateurs le filtre élaboré permet de filtrer des données avec plus de possibilités que le filtre simple dont on atteint très vite ses limites. En plus de filtrer les données sur place, il permet l'exportation de celles-ci vers une autre feuille ou un autre classeur. Son exploitation en VBA offre de belles perspectives de développement. J'espère que la lecture de ce tutoriel vous permettra de le découvrir ou d'en apprendre plus sur ses possibilités.

    Read the article

  • DHTMLX 4.0 : nouveau look et meilleures performances pour la bibliothèque JavaScript de DHX

    DHTMLX 4.0 : nouveau look et meilleures performances L'équipe de développement de la bibliothèque JavaScript DHTMLX vient d'annoncer la sortie de sa version 4.0. Cette mise à jour majeure se caractérise par une amélioration significative des performances, la correction de plusieurs bugs et une amélioration de la rapidité des composants. Par ailleurs, elle apporte un rendu plus fin et un look and feel plus élaboré qui se matérialisent par des skins repensés. L'une des mises à jour les plus importantes...

    Read the article

< Previous Page | 736 737 738 739 740 741 742 743 744 745 746 747  | Next Page >