I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Slettet bruger
17. april 2001 - 11:11#1
Du slipper billigere, hvis du opretter en java.util.Properties.
Denne klasse har håndtag til at læse og skrive sig selv ned i en fil.
Her kan du se den klasse jeg bruger til at loade Properties med, den gemmer dem i en hasmap for at de ikke skal loades næste gang de skal bruges, bliver anvendt sammen med JSP
/* * Settings.java * * Created on 25. marts 2001, 21:41 */
package disky.property;
import java.util.*; import java.io.*;
/* * Denne klasse er grund klassen der loader og håndterer Properties * Man nedarver denne klasse for at tilpasse paths osv. */
/** * * @author administrator * @version */ public class PropertyLoader { protected static final Locale defaultLocale=new Locale(\"en\",\"US\"); static final String keyNotFound=\"Sorry property value does not exist\";
try { String value=res.getString(key); //if key does not exist then exception is called return value; } catch (MissingResourceException e) { } return keyNotFound; } }
Men du kan også gemme dem i en alm. text fil. En jar fil er jo fil nogenlunde ligesom .zip
nedenstående kode indlæser indholdet af en txt fil, men er der en \"find(\'hej\')\" metode der henter en bestemt tekststreng eller lign. Jeg tror at den klasse du har er lidt overkill for mig.
FileInputStream inStream = new FileInputStream(\"statix.txt\"); int inBytes = inStream.available(); byte inBuf[] = new byte[inBytes]; int bytesread = inStream.read(inBuf,0,inBytes); inStream.close();
At ovenstående ser stort ud skyldes at jeg forsøger at lave det så objectorienteret korrekt som muligt, og samtidigt generelt, så det kan anvendes i mange projekter.
Synes godt om
Slettet bruger
17. april 2001 - 11:39#7
Programstumpen
// Lav en Properties med to poster java.util.Properties props=new java.util.Properties(); props.put(\"variabel1\",\"værdi1\"); props.put(\"variabel2\",\"værdi2\"); System.out.println(\"-- Indhold af props1 --\"); props.list(System.out); java.io.FileOutputStream fo=new java.io.FileOutputStream(\"C:\\\\value.txt\"); props.save(fo,\"header\");
// Læs filen der lige er lavet ind i en anden Properties-instans java.util.Properties props2=new java.util.Properties(); props2.load(new java.io.FileInputStream(\"C:\\\\value.txt\")); java.util.Enumeration e=props2.keys(); System.out.println(\"-- Indhold af props2 --\"); while (e.hasMoreElements()) { String nøgle=(String)e.nextElement(); String værdi=(String)props2.getProperty(nøgle); System.out.println(nøgle+\"=\"+værdi); }
Giver output:
-- Indhold af props1 -- -- listing properties -- variabel2=værdi2 variabel1=værdi1 -- Indhold af props2 -- variabel2=værdi2 variabel1=værdi1
Og hvis du så importerer java.util.* og java.io.* slipper du for at skulle skrive java.util. og java.io foran de steder hvor de bruges. (giver pænere kode)
Jeg kan godt lide at diskys løsning kan genbruges i et andet projekt og jeg har snuppet koden hehe.... Desværre er jeg selv temmelig uerfaren med JSP (endnu) og går lige nu og her efter den lette løsning.
joern_h: hvorfor er det overkill at lave det objectorienteret korrekt ?
Når jeg nu arbejde som konsulent skal det netop være lavet ordentligt, og ikke bare en løsning der er klyttet sammen.
Din løsning ville f.eks. totalt stresse en JSP server, hvis mange brugere samtidigt skulle have hentet nogle properties, hvorimod min gemmer dem statisk i hukommelsen. Tro mig det gør en stor forskel på store sites.
Synes godt om
Slettet bruger
17. april 2001 - 12:31#14
disky --> Du har ret! Det er sørme en god ide at anvende de rette værktøjer til de rigtige opgaver!
Det er godt man har konsulenter! Hvad skulle vi da gøre, hvis alle bare klyttede noget sammen.
Men problemformuleringen indeholder intet om at løsningen skal køre på en webserver. Ej heller noget om at værdierne skal kunne gemmes i alle mulige og umulige sprogvarianter.
Din løsning er en typisk konsulent-løsning: Tag noget gammelt kode, udviklet til et andet formål og send det afsted, så man kan snuppe nogen billige point. At modtageren så ikke har forudsætninger for at læse din kode er vel underordnet. Bare du kan skrive *objektorienteret*, så går det nok.
Når du engang lærer at programmere kan vi snakke om det.
Det er tydeligt du ikke har lært om fornuftigt software udvikling. Man kan tydeligt høre du ikke har lært om kode genbrug som er det eneste rigtige, man opfinder jo heller ikke den dybe tallerken 2 gange vel, man vasker bare den gamle.
Det er korrekt han ikke skrev den skulle kunne alt dette, men han bad om et eksempel og det fik han, som han selv skrev tog han al koden til senere brug.
Men som sagt kom igen når du har lært at programmere og lært software udvikling på andet en newbie niveau.
Det der viser om en software udvikler er dygtig er netop at koden er generel så den kan anvendes igen og igen, uden at man skal starte helt forfra hver gang.
Angående det med point, se lige hvor mange jeg har i forhold til dig, og lær ud fra det.
Synes godt om
Slettet bruger
17. april 2001 - 12:43#16
disky --> Jeg bøjer mig i støvet. Det er imponerende at en travl konsulent som dig har tid til at svare på Eksperten-spørgsmål.
Kan du ikke klare kritik, det var ligesom dig der begyndte med at min skulle være overkill. Kunne du ikke klare du ikke fik alle points ?
Nej jeg genbruger ikke mine svar, tværtimod svarer jeg individuelt på dem. Men når folk beder om eksempler får de dette, og har jeg lavet tingene i forvejen bruger jeg selvfølgelig et af dem.
Og hvordan kan du udtale dig om jeg har travlt eller lignende ?
Det var meningen at den skulle hente de gamle props og tilføje en ny.. Jeg har bøvlet med at finde en metode der ikke overskrev de gamle, men det er ikke lykkedes mig.
hvad mener du med at jeg skulle fange exceptions en efter en? eller rettere hvordan?
Jeg skal til det.. Jeg har tidligere brugt det. Hvis du gider høre på mine (endeløse) spørgsmål, så vil det da være herligt for mig at kunne stille dem direkte til dig. Det lader jo til at du kender de fleste af svarene.
// Get parameters from article String text1 = article.getComponentValue(TEXT1);//element nummer String text2 = article.getComponentValue(TEXT2);//er det sidste element - boolean værdi String text3 = article.getComponentValue(TEXT3);//overskrift String text4 = article.getComponentValue(TEXT4);//manchet String text5 = article.getComponentValue(TEXT5);//billede URL String text6 = article.getComponentValue(TEXT6);//placering af billede String text7 = article.getComponentValue(TEXT7);//type af visning String tmpNoExternal = article.getComponentValue(\"last\"); //Sidste element i formen? boolean last = true; if (\"true\".equals(tmpNoExternal)) last = false; else last = true; %>
<%
int tmpname = Integer.parseInt(text1); if (tmpname == 1) out.println(\"<table border=\'0\' cellpadding=\'0\' cellspacing=\'0\' bgcolor=\'#ebeff3\'>\");
puha umiddelbart ja, men jeg skal have noget mere info.
Kontakt mig enten på ICQ #1413069
eller disky@disky-design.dk
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.