Här är en liten kort lösning på hur man väljer ut ett visst antal rader ur en DataTable och efter en definerad sortering. Ungefär som man gör i SQL-uttrycket (SELECT TOP).
Detta hade jag haft en del problem med tidigare i samband med hantering av ett DataSet. Idag lyckades jag genom att forska i det på bland annat DeveloperFusion, TheScripts och MSDN - DataTable.Select().
Jag hade satt ihop ett antal DataSet till ett kombinerat DataSet. När jag försökte iterera igenom detta sammasatta DataTable, kom alltid de rader jag hade lagt till först, överst i utskriften. Jag behövde ha sorteringen efter en specifik parameter som var gemensam för hela den nya datasamlingen, i mitt fall en datum-kolumn.
Här är lösningen som jag kom fram till. Den använder DataTable.Select() och lämnar första parametern tom. Den andra anges för att få rätt sortering. En array av DataTable-rader returneras. Dessa importerar jag en efter en till en klonad modell av DataTablen. Jag begränsar detta till 10 omgångar. Slutligen returneras en DataView.
Måste säga att Primelabs verkligen har importerat stort med sina lanseringar och framtoning som företag. Allt de gjort hittills har varit exemplariskt och jag har en känsla av att de har fler äss i ärmen.
Ta till exempel den nya skärmsläckaren som nyligen lanserades, hur cool är inte den? Nu kanske jag är överdrivet intresserad av just såna här grafiska överblickar men endå. När den lanserades såg man även till att lägga ut en film på YouTube och fixa en länk på Digg. Helt rätt.
Angående skärmläsaren så tycker jag du ska kolla in den om du har något intresse för bloggosfären. Programmet visar en 3D-modell av jorden och en lista med rubriker för nya inlägg till vänster. På platser med många inlägg byggs det upp små staplar. Man kan zooma in och vrida på modellen.
Förutom att använda den som skärmsläckare kan man även köra den som ett vanligt program. Det enda som är lite synd är att den är så resurskrävande. Hoppas de får till en mer optimerad version senare, den är ännu bara i beta-stadium.
Vi kör ett litet torsdagstema med bildbehandling. Skrev för ett tag sen lite kortfattat om hur man kan ladda upp filer med ASP.NET. Ser att det ramlar in en hel del folk genom sökningar så tänkte gå vidare på ämnet.
Nu tänkte jag bjuda på en till mesta del hemmasnickrad klass för att ladda upp och förminska bilder till servern. Kvaliteten blir ibland inte perfekt så denna funktion passar bäst till att skapa mindre tumnaglar.
Sen har jag även märkt att röda nyanser blir något flammiga ibland. Själva funktionen "CreateThumbnail" har inte jag skrivit men har haft den så länge att jag glömt bort var den kommer från. Om någon har en bättre lösning som ger bättre resultat är jag mycket intresserad. Annars kanske det få bli en djupdykning i källkoden för gratisprogrammet Paint.NET i jakt på bätte förminskningsfunktioner.
Men nu till exemplet. Ber om ursäkt för dålig dokumentation och en blandad kompott på svenska och engelska. Använd den precis som du vill. Jag uppskattar länkar tillbaks och även om du gör några framsteg på bildkvaliteten.
Så här anropar man klassen:
if (fu.HasFile) { Trace.Write("We found a image to upload"); HttpPostedFile userPostedFile = fu.PostedFile; ImageUploader imageUploader = new ImageUploader("C:/sökväg/på/server/", userPostedFile, "Namnpåbild.jpg"); //Utlämna mått för att behålla orginalstorlek på bilden imageUploader.IntMaxWidth = 150; imageUploader.IntMaxHeight = 50; bool boolStatus = imageUploader.UploadImage(); if(boolStatus) Trace.Write("Image uploaded!"); }
Och här är själva klassen:
using System; using System.Data; using System.Data.SqlClient; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Drawing; using System.Drawing.Imaging;
/// <summary> /// Summary description for ImageUploader /// </summary> public class ImageUploader : Page {
//Properties public string StrRootPath { get { return strRootPath; } set { strRootPath = value; } } public string StrImageName { get { return strImageName; } set { strImageName = value; } } public int IntMaxWidth { get { return intMaxWidth; } set { intMaxWidth = value; } } public int IntMaxHeight { get { return intMaxHeight; } set { intMaxHeight = value; } }
//I första konstruktorn använder vi filens orginalnamn public ImageUploader(string StrRootPath,HttpPostedFile UserPostedFile) { strRootPath = StrRootPath; userPostedFile = UserPostedFile; //Ta bort eventuell filändelse strImageName = userPostedFile.FileName.Remove(userPostedFile.FileName.LastIndexOf(".")); //UploadImage(userPostedFile); } //I den utökade så skickar vi med ett eget filnamn public ImageUploader(string StrRootPath,HttpPostedFile UserPostedFile,string StrImageName) { strRootPath = StrRootPath; userPostedFile = UserPostedFile;
//Förminska om den är för stor, och ladda upp if (tooHigh || tooWide) { Trace.Write("tooBig!!"); //Skapa liten automagiskt double photoWidth, photoHeight; double percentageDifference = 0;
//Kolla vad det är för format ImageFormat imageFormat = outputBitMap.RawFormat;
//Spara bilden outputBitMap.Save(@"" + strRootPath + strImageName, imageFormat); uploaded = true; } //Ladda upp orginalbilden om den är inom måtten else { Trace.Write("Rätt storlek eller mindre.");
//Tar emot en BitMap och gör den mindre public static Bitmap CreateThumbnail(Bitmap loBMP, int lnWidth, int lnHeight) { System.Drawing.Bitmap bmpOut = null;
try {
ImageFormat loFormat = loBMP.RawFormat; decimal lnRatio; int lnNewWidth = 0; int lnNewHeight = 0;
//Om bilden är större än en thumbnail, returnera den. if (loBMP.Width < lnWidth && loBMP.Height < lnHeight) return loBMP;
Laddade just hem Paint.NET och har provkört det lite snabbt. Verkar vara kanonbra. Det startar upp på typ en sekund och har en hel del funktionalitet när det gäller bildbehandling.
Jag har länge letat efter ett sådant här program för att använda till snabbare ändringar på bilder, och nu har jag funnit det. Tidigare har jag gjort all bildbehandling i Photoshop och det vet ju de flesta användare att det är ganska så segstartat.
Omar Al Zabir är en av Pageflakes grundare. Förra året vann teamet över bland annat Microsoft's Live.com, Netvibes och Googles IG i Web 2.0 award kategorien startsidor. Ingen dålig bedrift kan man säga.
Här är en klockren bild över hur en webbutvecklares vardag kan se ut. Som ni ser på den något ironiska bilden brottas vi ca 45% av tiden med att försöka få designen att bra ut i den mest använda webbläsaren IE6. Jag vet att just den versionen inte står inskriven på bilden, men det är min egen tolkning.
Som tur är har jag lagt ner all fokus på att försöka få den här webbplatsen att de bra ut i den föråldrade läsaren, och alltså sparat in nästan hälften av utvecklingstiden. Att denna sidan ser helt kass ut med IE6 (konstiga mellanrum och kantiga ramar) bryr jag mig helt enkelt inte om.
Jag ser dock fortfarande att många av er som besöker den här sidan använder IE6. Varför har ni inte uppdaterat ännu? Se nu till att ladda hem IE7 så fort som möjligt den finns ju på svenska så det är väl inget att vänta på? Mycket säkrare, fina fliksystem och RSS-läsare. Precis allt det som en modern surfare som du behöver.
Det här blir man ju bara förbannad på. En lärare lämnade eleverna med en dator i några minuter. Barnen surfade själva in på en hemsida för hårvård. På hemsida råkade det finnas en länk till en sida med pornografiskt innehåll.
Nu infekterades datorn med en så kallad trojan och mängder av nya fönster poppade upp med sexuellt innehåll. Den stackars läraren försökte febrilt stänga ner fönstren allt eftersom de kom upp nya. Många av er som läser detta har nog råkat ut för ungefär samma sak. I alla fall för några år sen innan webbläsarna började införa popup-blockerare.
Nu åtalas hon och riskerar ett maximalt straff på 40 års fängelse. Åtalar sidan menar att hon kunde ha slängt ett skynke över datorn och på så sätt skyddat barnen. Inte så lätt att tänka över detta om man inte är så datorkunnig och kämpar med att få bort elaka fönster, säger jag.
Så om du är lärare och bor i Eastern Connecticut, så rekommenderar jag dig att slå sönder monitorn så fort något liknande händer. Om du inte råkar ha ett skynke i närheten menar jag. Det blir bra mycket lindrigare att betala den räkningen än att riskera fängelse. Var det nån som nämde att det finns galningar i USA?
Nu släpper Microsoft en ny minimodell av ramverket .NET anpassad för små "inbäddade" konsoler kallat .NET Micro Framework. Med ett minimum krav på 256KB RAM och 512K Flash/ROM är det definitivt en lättviktare.
Du kanske har hört talas om Trig.com? Det har skrivits lite om denna nya community på nätet. Det är en svenskutvecklad sajt som kan liknas vid den mer kända Myspace.
Gillar du upplägget på Myspace så kommer du att älska Trig. Allt är så mycket snyggare och väl genomtänkt. Jag har själv hängt på deras beta-version i några månader och träffat massor av roligt folk. Riktigt kul att få vara med från början när en sån här community håller på att skapas.
Nu har jag fått några extra inbjudningar till övers. Om du känner för att kolla in så skriv en kommentar till detta inlägget och ange en giltig email-adress. Din adress kommer inte synas på sidan men jag får den och skickar ut en inbjudan.
Vi tänkte dela med oss med ett exempel på hur man kan göra en slideshow i flash. Längst ner i detta inlägg finns en länk där du kan ladda ner zip-fil med Fla-fil och ett exempel på XML-fil som används för att ladda in bilderna.
Filen kan konfigureras med två parametrar men i så fall måste två rader kommenteras bort i orginal-filen. Här är ett exempel på hur dessa parametrar som anger vilken XML-fil som ska användas och även hastigheten på hur snabbt bilderna ska bytas. Filerna är gjorda för bilder med storlek på 400 bredd och 265 pixlar i höjd. Hastigheten på bildväxlingen är satt till 4 sekunder i flash-filen.
Vill ni använda denna slideshow i era egna projekt så är det fritt fram. Länka gärna till vår hemsida eller detta inlägg. Det uppskattas. Vi vill också passa på att tacka Fakepilot.com som har varit med och utvecklat dessa filer.