Hledám programátory, kteří rozumějí JAVĚ za účelem vývoje OpenSource projektu z oblasti elektroniky, fyziky a matematiky. Program byl z velké části napsán v .NETu, ale z důvodu použitelnosti i na jiných OS uvažujeme o JAVĚ.
Příspěvky odeslané z IP adresy 94.113.182.–
Má smysl se učit programovat v platformě .NET? Nebo se raději učit jiný jazyk?
Prosím o kritiku webu http://elmetr.axolot.cz/ Zajímá mě vše co bych mohl zlepšit. Děkuji
To djanosik i všichni ostatní: Jedná se buď o programování pluginů (k tomu by byly vhodné alespoň úplně základní znalosti elektroniky) a nebo o úpravu již hotových částí pod Linux (MONO) - je třeba si pradit s špatným vykreslením formuláře, pohrát si s cestami (opačná lomítka), české znaky, později i konverze GDI.
Zdar, já to řeším takto:
$dblink = mysql_connect("localhost","xxx","xxx");
mysql_query("SET character_set_client=UTF8",$dblink);
mysql_query("SET character_set_connection=UTF8",$dblink);
mysql_query("SET character_set_results=UTF8",$dblink);
a nemám problém, záznamy s diakritikou se ukládají bez problému.
Zdravím, lámu si nad tím hlavu už dost dlouho a nemůžu přijít, jak využít funkční klávesy F1-F12 v programu psaném v C. Potřebpoval bych poradit, jak udělat switch, kde by bylo F1 Npověda, F2 Nový atd (jedná se o konzolovou aplikaci).
Dík moc za rady.
Zkus to s těmi vlákny, mělo by to fungovat.
public Form1()
{
InitializeComponent();
Thread u = new Thread(new ThreadStart(play));
Thread v = new Thread(new ThreadStart(play2));
u.start();
v.start();
}
private void play()
{
PlaySound(sound, 0, SND_MEMORY | SND_ASYNC | SND_LOOP);
}
private void play2()
{
PlaySound(sound2, 0, SND_MEMORY | SND_ASYNC | SND_LOOP);
}
To zdenda : Připomínky opravím, jen nevím dvě věci:
1, co se týče opakování kodu, dalo by se to řešit tak, abych ho neopakoval? Už jsem se na to díval a nevím...
2, i mě samotnému se system("pause") + getchar() moc neíbí, ale pokud getchar nedám, přenese se enter do menu a způsobí tam docela paseku. Pokud by mi někdo poradil jiné řešení, budu jen rád.
To zdenda : Bohužel je do do školy a v zadání strojí detailní komentáře k programu, tak pro jistotu jsem komentoval skoro vše.
while (i < poc, k < pocet)
Proč by to nedělalo? Bude probíhat, dokud bude kam zapisovata a co zapisovat, poc je pocet prvků v poli a pocet je pocet zaznamu, ktere chci nahrat (vychozi stav je 0). Podle mě v tom není problém.
Jinak k formatovani, trochu se tu na foru rozhodilo, bohužel...
To zdenda : Testování stavu je správné, programově to mám řešeno tak, že když odstraním záznam, ostatní záznamy se posunou na jeho místo a nový záznam se ukládá na první volné místo.
Jinak jsem to vyresil zatim takto (trochu jsem upravil vyse uvedeny zdrojak) a zda se, že to funguje, ale až zpracování více dat mi dá jistotu.
void R_Prijmeni()
{
int i = 0;
int j = 0;
TZAZNAM pom; //pomocná proměnna
while (i < poc) //klasicky bublinkovy algoritmus
{
j = i;
if(z[j].stav==1 && z[j + 1].stav == 1) //radime jen to, co obsahuje data, minimalne musi byt dva zaznamy, pokud nejsou, neni co radit a jde se na vypis
{
while(j >= 0 && strcmp(z[j].prijmeni, z[j + 1].prijmeni) == 1) //razeni dle prijmeni
{
pom = z[j];
z[j] = z[j+1];
z[j + 1] = pom;
j--;
}
if(strcmp(z[j].prijmeni, z[j + 1].prijmeni) == 0 && strcmp(z[j].jmeno, z[j + 1].jmeno) == 1) //jsou li stejne příjmení, provedeme roztřídění dle jmena
{
pom = z[j];
z[j] = z[j+1];
z[j + 1] = pom;
}
}
i++;
}
Vypis();
}
Mazání je řešeno takto (pokud tam je nějaká hloupost, budu rád, když mě na ni upozorníte)
void Smazat()
{
int id, i = 0, j;
bool k = false;
printf("\nZadej ID prvku, ktery bude smazan: ");
scanf("%d", &id);
while (i < poc) //procházení pole
{
if( z[i].ID == id && z[i].stav == 1) //nalezení ID a kontrola, zda je tu opravdu zaznam
{
z[i].stav = 0; //označení záznamu, že může být přepsán
j = i;
k = true;
while (j < poc) //přesun záznamů za smazanou položkou vpřed
{
if (z[j].stav == 0 && z[j + 1].stav == 1) //položky se přesouvají, je-li před nimi volné místo a obsahují li záznam
{
z[j] = z[j + 1]; //přesun položky vpřed
z[j + 1].stav = 0; //nastavení položky pro zápis
}
j++;
}
printf("\nPolozka byla odstranena.\n");
break; //nema smysl dale hledat ID, cyklus tedy ukoncime
}
i++;
}
if (k == true)
{
for (int i = 0; i < poc; i++) //oprava ID u polozek s vyssim ID, než měla odstraněna položka
{
if(z[i].stav == 1 && z[i].ID > id) //pokud je v položce záznam a ID je větší než ID smazané položky, provede se oprava
z[i].ID = z[i].ID - 1; //snížení ID za smazanou položku
}
}
if (k == false)
printf("\nSpatne ID.\n");
system("pause");
getchar();
Menu();
}
Už jsem myslel, že toto jede, ale nic
void R_Jmeno()
{
int i , j;
for(i = 0; i < poc; i++)
{
for(j = poc - 1; j >= i; j--)
{
if(z[i].stav == 1 && z[i + 1].stav == 1) //zaznamy se posunuji pouze tehdy, je li před nimi volné místo, prázdné záznamy se již nepřesouvaji
{
if ( strcmp(z[i].jmeno, z[i + 1].jmeno) == 1) //porovnavani dvou sousednich hodnot, klasicky bublinkovy algoritmus
{
TZAZNAM p;
p = z[i];
z[i] = z[i + 1];
z[i + 1] = p;
}
}
}
}
Vypis();
}
Jak si to mam naprogramovat? České znaky neřeším.
To liborb : Takže to bude vypadat nějak takto?
for(int i=0;i<poc;i++) //serazeni
{
if(z[i].stav == 0 && z[i + 1].stav == 1)
{
if ( strcmp(z[i].prijmeni, z[i + 1].prijmeni) < 0)
{
TZAZNAM p;
p = z[i];
z[i] = z[i + 1];
z[i + 1] = p;
}
}
}
Zdravím, učím se struktury v C. Napsal jsem toto, ale z nějakého důvodu to nefunguje správně. Když uložím jen jednoho člověka, vypíši se správně jméno a ID, ale věk je náhodné číslo z paměti, Při více lidech to již nefunguje vubec.
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int ID;
int vek;
char jmeno[];
} Tosoba[100];
int main(void)
{
int pocet;
Tosoba osoba;
printf("Kolik lidi nacist? (max 100)");
scanf("%d", &pocet);
for (int i = 0; i < pocet; i++)
{
osoba[i].ID = i + 1;
printf("Jmeno: ");
scanf("%s", osoba[i].jmeno);
getchar();
printf("Vek: ");
scanf("%d", osoba[i].vek);
getchar();
}
for (int i = 0; i < pocet; i++)
{
printf("ID %d\n", osoba[i].ID);
printf("Jmeno %s.\n", osoba[i].jmeno);
printf("Vek %d.\n", osoba[i].vek);
}
system("pause");
return 0;
}
Díky za pomoc
Pro inspiraci :smile1:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
double a, b;
private void textBox1_TextChanged(object sender, EventArgs e)
{
a = double.Parse(textBox1.Text.ToString());
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
b = double.Parse(textBox2.Text.ToString());
}
private void button1_Click(object sender, EventArgs e)
{
textBox3.Text = (Math.Sqrt(Math.Pow(a, 2) + Math.Pow(b, 2))).ToString();
}
}
}
Děkuji všem za rady, problém byl opravdu v cestě. Opravil jsem to a vše funguje. Jen je problém z českou diakritikou. Kdyby mě někdo napověděl, kde se do MONA dají nainstalovat písma, byl bych rád.
Jinak jsem na internetu našel bezpočet článků, že MONO nepodporuje WinForms. Mohu tedy říct, že tomu tak není (dokonce je podporován i nejnovější framework).
To djanosik :
Unhandled Exception: System.IO.DirectoryNotFoundException: Could not find a part of the path "/home/martin/home/martin/Plocha\trace\08-05-2010_05-10-10.txt".
at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean anonymous, FileOptions options) [0x00000]
at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share) [0x00000]
at (wrapper remoting-invoke-with-check) System.IO.FileStream:.ctor (string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare)
at System.Diagnostics.TextWriterTraceListener..ctor (System.String fileName, System.String name) [0x00000]
at System.Diagnostics.TextWriterTraceListener..ctor (System.String fileName) [0x00000]
at (wrapper remoting-invoke-with-check) System.Diagnostics.TextWriterTraceListener:.ctor (string)
at elmetrCore.Program.Main () [0x00000]
Zdravím, potřeboval bych poradit. Mám aplikaci v jazyce C# a chci ji provozovat na Linuxu. Projel jsem jí programem MONO migration analyazer a ten vyhodnotil, že aplikace půjde pod MONO sputit. Nahodil jsem tedy Linux a nainstaloval MONO Develop Studio. Pak jsem přes terminál dal MONO nazevAplikace.exe, ale hodilo to chybu, že aplikaci nelze spustit.
Ptám se tedy, udělal jsem chybu při práci s MONO? Nešla by aplikace pustit přes Wine, pokud bych tam přidal knihovny .NET Frameworku a kde tyto knihovny získat? Díky za odpovědi.
djanosik napsal:
To marpit : Ukládat cokoliv do program files je obecně špatně. Ten příklad není nijak složitej, ale jsou tam naznačený dva způsoby, který je možný využít.
Do Program Files musím ukládat, protože se jedná o instalátor pluginů, tedy ke správné funkci je nutné to dát k programu.
Ahoj, vyvtvářím hru lodě a potřeboval bych poradit. Mám vytvořené jádro programu (dvojrozměrné pole, které je náhodně vyplněno loděmi). Souřadnice políčka, na které střílím se zadávají souřadnicemi. Chtěl bych hru ještě doplnit o nějaké grafické rozhraní (nejlépe pomoci WinForms), ale nevím, jak vykreslit hrací plochu a jak kliknutím myši na plochu vzít souřadnice políčka. Mohl by mi někdo poradit?
Zdravím, vyvíjíme aplikaci s podporou pluginů. Aplikace má být k dispozici ve 4 jazycích. Pro lokalizaci využíváme přímo možnosti Visual Studia.
Chtěl bych se zeptat, jak udělat, aby jazykové DLL mohly být společně s pluginem? Program zatím vyžaduje lokalizační soubory ve složce se soubory jádra.
Děkuji moc za odpovědi.