-
Mobilarena
Új hozzászólás Aktív témák
-
Forest_roby
őstag
akkor nekem pont hogy az opengl kell, mert a fizikai részét én szeretném beprogramozni - ez az egyik fő lényege a dolognak. A másik meg a megjelenítés ( animált formában ) - erre akkor elvileg az opengl alkalmas.
( Egyébként most így hirtelenjében néztem pár pdf-et opengl -el kapocsolatban és mindegyik álló képek megjelenítéséről szolt - az nekem nagyon kevés - arra a gnuplot is képes. )
Köszi mégegyszer!<-- ez nem azt jelenti, hogy ne írjatok több okossat!
-
Forest_roby
őstag
Hi!
Gondolom a 3. pont szól nekem. Jól írtad - fizikai rendszereket szeretnék modellezni.
pl.: csúcsára állított kúp - alfa hajlásszögű, palástján egy golyó h magaságban és mondjuk feltétel legyen, hogy egyenletes körmozgást végez.
Ha megadom, hogy t0 időpontban hol a golyó, akkor hol lesz a golyó t1 időpontban.
omega^2=g/(h*tg^2alfa) ami a mozgásegyenletekből kijön.
Na, egy ilyen rendszert szeretnék modellezni első körben. t0 -tól t1 időpontig szeretném látni a mozgást, + az egyik sarokba kiiratni a koordinátákat ( x, y, delta szögelfordulás, h magaság bár az itt épp konstas )
A kérdés az volt, hogy ezt mivel lehetne elkészíteni!
A Blander alkalmas rá?
Egyébként a c elég jól megy az opengl meg most felkeltette az érdeklődésemet, úgyhogy ezzel foglalkozni fogok!!
Mindenesetre köszi a segítséget!
Forest -
Forest_roby
őstag
jól hangzik! már hallottam vhol ezt a szót!
Na, komolyabban - lehet opengl-ben programozni?! Ezek szerint igen! Mit érdemes tudnom róla, mielött nekiállnék?
(persze én is utánna nézek a dolognak!!)
köszi a tippet, elsőre nem rossz!
mod: nagyon is jól hangzik a dolog!!
[Szerkesztve] -
Forest_roby
őstag
Hi!
Szeretnék bizonyos fizikai jelenségeket modellezni - 2d ill. 3d -ben, de nem tudom, hogy mivel ill. hogyan álljak neki. Eddig a gnuplot-ot erőltettem, de nem tudtam belőle animált grafikonokat kihozni, sőt többé - kevésbé csak ps-formátumban sikerült lementenem a grafikonokat. A ps -ből meg nem tudok avi-t vagy mozgó dolgot összehozni, szóval ez nekem nem jó.
Elvárásom lene, hogy windowson és linuxon is menjene a dolog leprogramozása - szóval viszonylag platform független nyelv kéne. Ami igazán jó lenne az a c vagy a java nyelvek lennének. c-ben úgy tudom, hogy van vmi vektor grafika dolog, csak nem tom, hogy-hogyan műxik és nem tom, hogy alakalmas -e a kivánalmaimnak.
Az nem baj, ha kicsit fapados a dolog leprogramozása - szeretem a retró dolgokat!
( A flash-re én is gondoltam, de nekem nagyon nem jött, be és linux alatt ugy se lehet csinálni ugyhogy az kiesett. )
Nos, asszem eléggé körülírtam a dolgot. Várom javaslataitokat, tanácsokat, linkeket!
Előre is köszönöm!
Forest
ui.: modellezés: mozgásegyenletek leprogramozása -> kezdőfeltételek megadása -> t időpontban, hogy néz ki a rendszer. ez érdekelne igazán!! -
Forest_roby
őstag
Egyetem, első félév, első óra programozásból.
Tanár megkérdezki, hogy ki tud programozni legalább egy nyelven ( az tegye fel a kezét ), majdnem az egész osztály feltette a kezét.
Tanár - jó akkor aki pascal nyelven tud programozni, az tegye le a kezét, mert az nem programozási nyelv!
Hirtelen letüntek a kezek 90-95%-a.
Nem igazán kedvelem a tanárt, de tény hogy NAGYON tud programozni.
/no mindegy!/
egyébként én is a c -t ajánlanám. mély víz, de ami nem ől megy az...... -
Forest_roby
őstag
válasz
Lortech #2452 üzenetére
én mit info - fizika szakos átérzem a vektorok fontosságát, hasznát ( elektromosságtan, kvantumfizika v. fluxus, gradiens, többváltozós fv integrálok ) de a martixoknak és determinánsuknak még egyszer se vettem hasznát!
De igazadvan, elhamarkodtam ezt a választ - tényleg fontos a lin algebra!
mod: ''nem sok gyakorlati haszna van, ha engem kérdeztek...''
rosszúl fogalmaztam, itt csak a matrixokra gondoltam!
[Szerkesztve] -
Forest_roby
őstag
hi!
Magából a sudokus dologból kimaradnák, de csupán a forrást nézve kezdetnek nem is rossz, csak fordítva kell : )
sudoku[0][0] = 1;
sudoku[0][1] = 2;
...
..
.
és akkor nyilván vmilyen bonyolultabb ciklussal ( ciklusba ágyazott ciklussal fel lehet tölteni )
A kiértékelés ugyan így ciklussal mehet, ez nyilván egy kétparaméteres tömb, ha az egyik paraméterét fixen hagyod és a másikra futtatsz egy ciklust akkor megvan az az adott sor v. oszlop.
Nem igazán tudom, hogy mire vagy kíváncsi? Írjak egy forrást, ami összead egy sort?
Mindenesetre sok sikert!
Forest -
Forest_roby
őstag
válasz
Speeedfire #2437 üzenetére
pedig a másik - gvim - való igazán programozásra és persze még rengeteg másra...
-
Forest_roby
őstag
válasz
Speeedfire #2435 üzenetére
notepad? esetleg gvim?
-
Forest_roby
őstag
válasz
Jester01 #2367 üzenetére
( kicsit kidőltem )
PACKAGE_CFLAGS = -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2
PACKAGE_LIBS = -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lfontconfig -lXinerama -lXi -lXrandr -lXext -lXcursor -lXfixes -lpango-1.0 -lcairo -lXrender -lX11 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 -lxml2 -lz -lm
szerintem ezek a fontos részek... Nem tom, vhogy nem egyértelmű... ha egy névvel ellátott libet akarnék hozzáadni az TALÁN menne de ez a saját mappás dolog nem... -
Forest_roby
őstag
Jó reggelt!
program make dist -elésénél, hogy lehet megadni, hogy egy plus mappát is disteljen be(, ahol a program saját header file -jait tárolom) (/src/own/... <-- itt vannak az általam készített header fileok)???
Előre is köszi! -
Forest_roby
őstag
válasz
Bazsesz #2360 üzenetére
Hi!
Szemaforok: légyeg, ha egy erőforrást egyszerre két folyamat akar használni, akkor ütköznének a folyamatok, -biztos hogy hibás eredmények születnének. Most cifrázhatnám, hogy milyen sulyos hibák történhetnének, de el tudjátok képzelni... No, első gondolatra válozókkal meglehetne oldani, a problémát ( ezt most nem részletezem ) , de az a probléma, hogy ott ugyanúgy összeakadna a progi, ez nem megoldás. A szemafórok az oprendszer (LINUX) által biztosított olyan változók, amiknél nem fordulhat elő az, hogy egszerre használják ugyanazt az eszközt... ( hogy ezt hogy érik el, az legyen egy okosabb embernek az összefoglalója ).
Szóval ilyen problémák megoldására a szemaforokat kell használni....
Használat:
A szemaforokon két műveletet értelmezünk:
Csökkentés és Növelés
A szemafor értéka 0 és 1 lehet. Ha 0 -akkor blokkolt a folyamat és ha 1 akkor szabad a futás.
Csökkentés:
Amikor a progi belépni akar a kritikus szakaszba akkor fog csökkenteni, ha a szemafor 0 volt akkor várólistára kerűl a folyamat, ha 1 volt akkor a folyamat lefut és a szemafor 1-ről 0-ra csökken.
Növelés:
A folyamat végrehajtása után történik meg. A szemafort 1-re álitja. Ha lenne olyan folyamat, amely e miatt a szemafor miatt volt blokkolt állapotban, arról a Linux gondoskodik, hogy az felszabaduljon a blokkolt állapotból.
(dióhélyban /majd vissza kell olvasnom, hogy mennyi baromságot írtam ide le....)
int semget(...)
int semctl(...)
int semop(...)
fv-eknek érdemes utánna nézni, sajna a progi amit tudnék adni 125 soros és most nincs kedvem begépelni, de google-on biztos sokat találsz....
remélem azért nem volt teljesen hasztalan ezt begépelnem...
Sok sikert!
[Szerkesztve] -
Forest_roby
őstag
még egy kérdés!
Van egy txt file, mondjuk max 150kb méretű.
Az első két sort ki kellene benne cserélni 1 db sorra és elmenteni.
Plus ugyan ez vissza.... /1 sor helyére 2 sort tenni és elmenteni...
Ezt hogy kell csinálni, persze külön-külön?
mod: az elmentést azt megoldom! : )
[Szerkesztve] -
-
Forest_roby
őstag
HI!
c nyelv!
Egy mátrix v. mátrix szerű dolog kellene nekem. Lényeg az, hogy két szám paraméter alapján érjek el egy értéket!!! -nyilván hogy ciklusban tudjam keresni az adott elemeket....
ilyesmi:
t[1,1] t[1,2] t[1,3] t[1,4]
t[2,1] t[2,2] t[2,3] t[2,4]
t[3,1] t[3,2] t[3,3] t[3,4]
t[4,1] t[4,2] t[4,3] t[x,y]
az y -nak van felső korlátja, max 13 asszem, de az x vagyis a sorok száma az változó lehet...
egyes oszopok char tipusuaknak kellene lennie és egyeseknek meg int tipus kellene, de ha csak egy tipussal megy akkor inkább a char-t választanám.
So, nem tudom, hogy hogy lehet ilyet csinálni c -ben, de nagyon sűrgősen szükségem lenne rá. Talán strukurával vhogy, de nem tudom.......
Légyszi segítsetek!
Előre is köszi
Forest
mod.: Lehet, hogy csak 12:00 után tudom megnézni a válaszokat, de sajna az is lehet, hogy csak holnap, pedig nagyon szükségem lenne a válaszra.... : (
[Szerkesztve] -
Forest_roby
őstag
arra akarsz kijukadni, hogy a gcc -nek van olyan kapcsolója, amivel a fordításkor hozzá lehet adni a dll -eket a progihoz, mert ha igen, akkor ''lökjél meg'' légyszi azzal a szóval ami kell a forrdításhoz....
de ha nem akkor..... akkor nem értem, hogy mit akarsz itt ezzel....
[Szerkesztve] -
Forest_roby
őstag
Elegem van! soha nem fogok win-re fejleszteni!!!!
lefordult a progi nagy nehezen -akarom elindítani erre elkezd dll -eket kunyerálni.....
áááááá
Esetleg vki tudja, hogy mé sz<>pat ez engem?
mod:
dll-ek:
iconv.dll
intl.dll
libatk-1.0-0.dll
libglib-2.0-0.dll
libgobject-2.0-0.dll
bemásoltam a mappájába, akkor meg g_assert -el kilépett.
[Szerkesztve] -
Forest_roby
őstag
válasz
Forest_roby #2311 üzenetére
jó, ez nagyából megvan, de most kismillio *****.h file-t hiányol.
-
Forest_roby
őstag
Hi!
Próbálom a linux alatt fejlesztett progimat átvinni winre, de nagyon nem megy...
Feltelepítettem a dev-c++ + minGW -t együtt + leszedtem a legujabb libeket innen:
ftp://ftp.gnome.org/pub/gnome/binaries/win32/
kb ezeket:
libgnomeui
libgnome
gtk+
pango
glib
stb...
mindig a legujabbat és mindig a dev-esett. Kitömörítettem őket 1-1 mappába és a dev-c++ -ban a fordító beállításainál hozzáadtam a bin, lib és include mappákat.
Tudtam, hogy ennyi még nem elég,de próbának rányomtam a fordíásra és kiírta, hogy a gnome.h nem található, pedig az is ott van a belinkeltt libek között...
Mit csináltam rosszul?
[Szerkesztve] -
Forest_roby
őstag
Hi! ha ráérnétek ránéznétek erre a kódrészletre: /elég nagy/
void
on_save_xml_button_clicked (GtkButton *button,
gpointer user_data)
{
g_message(''%s(): start: '', __func__);
//az xml dokument elõállításához
xmlDocPtr document;
xmlNodePtr styles;
xmlNodePtr style;
xmlNodePtr text;
xmlNodePtr property;
GtkWidget *window;
GtkTextView *text_view;
GtkTextBuffer *text_buffer;
GtkTextIter start_line;
GtkTextIter end_line;
gchar *the_text;
GSList *activ_tags;
GSList *p;
gchar *name;
gchar *font;
//file keresõ ablakhoz
GtkWidget *save_file;
gchar *file_name;
int response;
//fájl név
window = GTK_WIDGET(lookup_widget(GTK_WIDGET(button), ''myeditor_window''));
file_name = (gchar*)g_object_get_data(G_OBJECT(window),''file_name'');
if (file_name == NULL){
save_file = gtk_file_chooser_dialog_new(''Save file'', NULL,
GTK_FILE_CHOOSER_ACTION_SAVE,
GTK_STOCK_SAVE, GTK_RESPONSE_OK,
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
NULL);
response = gtk_dialog_run(GTK_DIALOG(save_file));
if (response == GTK_RESPONSE_OK){
file_name = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(save_file));
g_object_set_data(G_OBJECT(window), ''file_name'', file_name);
g_message(''%s(): file name is: %s'', __func__, file_name);
}else if (response == GTK_RESPONSE_CANCEL){
gtk_widget_destroy(save_file);
return;
}
gtk_widget_destroy(save_file);
}
//fájl név megvan
//xml dokumentum elõállítása
document = xmlNewDoc(''1.0''); //új dokumentum a memóriában
document -> children = xmlNewDocNode(document, NULL, ''doc'', NULL); //gyökérelem létrehozása
styles = xmlNewChild(document -> children, NULL, ''styles'', NULL); //stílusok
text = xmlNewChild(document -> children, NULL, ''text'', NULL); //szöveg - tulajdonságokkal
text_view = GTK_TEXT_VIEW(lookup_widget(window, ''myeditor_textview''));
text_buffer = gtk_text_view_get_buffer(text_view);
gtk_text_buffer_get_start_iter(text_buffer, &start_line);
end_line = start_line;
gint counter = 1;
while (!gtk_text_iter_is_end(&end_line)){
gtk_text_iter_forward_to_line_end(&end_line);
the_text = gtk_text_buffer_get_text(text_buffer, &start_line, &end_line, TRUE);
/*if (activ_tags != NULL){
g_object_get(G_OBJECT(g_slist_nth_data(activ_tags, 0)), ''name'', &name, NULL);
g_object_get(G_OBJECT(g_slist_nth_data(activ_tags, 0)), ''font'', &font, NULL);
}else{
name = ''Default'';
font = ''Arial Normal 8'';
}
//stílus
style = xmlNewChild(styles, NULL, ''style'', NULL);
xmlSetProp(style, ''name'', name);
xmlSetProp(style, ''font'', font);
//szöveg
property = xmlNewChild(text, NULL, ''proporty'', the_text);
xmlSetProp(property, ''style'', name);*/
/*******************************************************************************************/
activ_tags = gtk_text_iter_get_tags(&start_line);
gchar *n;
n=g_strdup_printf(''%d. style'', counter);
counter=counter+1;
style = xmlNewChild(styles, NULL, ''style'', NULL);
xmlSetProp(style, ''name'', n);
g_message(''ITT VAN! n:%s counter: %d'', n, counter);
for(p = gtk_text_iter_get_tags(&start_line); p != NULL; p = g_slist_next(p))
{
gchar *name;
g_object_get(G_OBJECT(g_slist_nth_data(p, 0)), ''name'', &name, NULL);
//g_message(''Tag neve: %s'', name);
if( strncmp(name, ''justify'', 7) == 0){
gchar *m;
m=g_strdup_printf(''%s'',name);
m = &m[8];
//g_message(''\t\tjustification:\t\t%s'', m);
xmlSetProp(style, ''justification'', m);
//g_free(m);
}else if( strncmp(name, ''foreground:'', 11) == 0){
gchar *m;
m=g_strdup_printf(''%s'',name);
m = &m[12];
//g_message(''\t\tforeground:\t\t%s'', m);
xmlSetProp(style, ''foreground'', m);
//g_free(m);
}else if( strncmp(name, ''background:'', 11) == 0){
gchar *m;
m=g_strdup_printf(''%s'',name);
m = &m[12];
//g_message(''\t\tbackground:\t\t%s'', m);
xmlSetProp(style, ''background'', m);
//g_free(m);
}else if( strncmp(name, ''indent:'', 7) == 0){
gint *ind;
g_object_get(G_OBJECT(g_slist_nth_data(p, 0)), ''indent'', &ind, NULL);
//g_message(''\t\tindent:\t\t\t%d'', ind);
xmlSetProp(style, ''indent'', ind);
}else if( strncmp(name, ''own:'', 4) == 0){
gchar *font;
gint *left_margin;
gint *right_margin;
gint *pixels_above_lines;
gint *pixels_below_lines;
gint *pixels_inside_wrap;
g_object_get(G_OBJECT(g_slist_nth_data(p, 0)), ''font'', &font, NULL);
g_object_get(G_OBJECT(g_slist_nth_data(p, 0)), ''left-margin'', &left_margin, NULL);
g_object_get(G_OBJECT(g_slist_nth_data(p, 0)), ''right-margin'', &right_margin, NULL);
g_object_get(G_OBJECT(g_slist_nth_data(p, 0)), ''pixels-above-lines'', &pixels_above_lines, NULL);
g_object_get(G_OBJECT(g_slist_nth_data(p, 0)), ''pixels-below-lines'', &pixels_below_lines, NULL);
g_object_get(G_OBJECT(g_slist_nth_data(p, 0)), ''pixels-inside-wrap'', &pixels_inside_wrap, NULL);
//g_message(''\t\tfont:\t\t\t%s'', font);
xmlSetProp(style, ''font'', font);
//g_message(''\t\tleft-margin:\t\t%d'', left_margin);
xmlSetProp(style, ''left-margin'', left_margin);
//g_message(''\t\tright-margin:\t\t%d'', right_margin);
xmlSetProp(style, ''right-margin'', right_margin);
//g_message(''\t\tpixels-above-lines:\t%d'', pixels_above_lines);
xmlSetProp(style, ''pixels-above-lines'', pixels_above_lines);
//g_message(''\t\tpixels-below-lines:\t%d'', pixels_below_lines);
xmlSetProp(style, ''pixels-below-lines'', pixels_below_lines);
//g_message(''\t\tpixels-inside-wrap:\t%d'', pixels_inside_wrap);
xmlSetProp(style, ''pixels-inside-wrap'', pixels_inside_wrap);
}else{
g_message(''HA EZT AZ ÜZIT MEGLÁTOD, AKKOR VMI BAJ VAN!'');
g_message(''name: %s'', name);
}
}
/************************************************************************************/
//szöveg
property = xmlNewChild(text, NULL, ''proporty'', the_text);
xmlSetProp(property, ''style'', n);
g_free(n);
gtk_text_iter_forward_line(&start_line);
}
//xml dokumentum elõállítása - befejezve
//fájlba mentés
if (!xmlSaveFormatFileEnc(file_name, document, ''UTF-8'', 1)){//memóriában levó állomány mentése
g_error(''Error saving document: %m'');
}
//fájlba mentés - befejezve
}
Gomblenyomásra a szövegszerkesztőben lévő szöveg bekezdésenkénti ( soronkénti ) lementését végzi xml formátumba ( bekezdésenként léptet a stylusok miatt *minden bekezdéshez társít 1db stylust -nincs stylus átlapolódás bekezdéseken belül ill között. ).
Eléggé nagy a kód és nehezen találom meg a hibákat. Van amikor jól műxik, van amikor rosszúl és van amikor fagy -eléggé rendszertelenűl. Valszeg változó felszabadítási problémákból elég sok lesz, nem tom.
Légyszi segítsetek a hibákat kiszűrni, akinek kell a progi tesztelés miatt msn -en át tudom küldeni. ( linux alatt írtam )
Előre is köszi!
Forest -
Forest_roby
őstag
válasz
PazsitZ #2289 üzenetére
Asszem vmi ilyesmi:
#include <stdio.h>
#include <string.h>
char *eltolas( char *tomb ){
int n,N;
int x=2;
N=strlen( tomb );
for( n=0; n<N; ++n ){
tomb[n]=tomb[n]+x;
}
return( tomb );
}
main(){
char tomb[32];
strcpy( tomb, ''abcdefghi'' );
printf(''%s\n'', eltolas(tomb));
}
de most nincs időm tesztelni.....
Finomítsad!
üdv:
Forest
[Szerkesztve] -
Forest_roby
őstag
válasz
Jester01 #2287 üzenetére
Ki kellett aludni magamat és máris megvan a megoldás!
Először zárójelek nélkül volt a kód, de ugy nem akart lefordulni:
callbacks.c: In function ‘on_used_words1_activate’:
callbacks.c:913: error: ‘strcmp’ undeclared (first use in this function)
callbacks.c:913: error: (Each undeclared identifier is reported only once
callbacks.c:913: error: for each function it appears in.)
callbacks.c:925: warning: incompatible implicit declaration of built-in function ‘strlen’
Elkezdtem keresgélni a hibát és akkor szedtem ki a zárójeleket -ennek hatására le is fordult de nem volt jó....
Ma reggel újra előröl, nem kellett 1 perc és már futott is a progi -hiányzott neki egy header file.....
Az alvás csodákra képes!
/persze vmi még igy se stimmel, de már fut... -egy helyen asszem kifagy/ -
Forest_roby
őstag
válasz
Jester01 #2285 üzenetére
igen, valószínűleg ott van a probléma...
ugy néztem, hogy a g_tree_new() -ba kell egy fv-t tenni, ami összehasonlítja az elemeket -erre az strcmp() jó, nem?
/msn -en akár mikor odaadom a progit, bár mostmár ráférne a nagytakarítás, -sok az egyforma rész benne.... -kicsit rendszereznem kell a dolgokat. -
Forest_roby
őstag
HI!
Ránéznétek erre? Csak pár hiba kiszűrésének céljából -én már tutkón nem veszek észre semmit ( két napja csinálom /nem pont ezt/ és vérvörösek a szemeim.... )
code:
void
on_used_words1_activate (GtkMenuItem *menuitem,
gpointer user_data)
{//NEM MEGY!
GtkTextView *text_view;
GtkTextBuffer *text_buffer;
gboolean is_true;
GtkTextIter start_word;
GtkTextIter end_word;
typedef struct rekord{
gchar *word;
gint presence;
}rekord;
GTree *word_tree;
GList *word_list;
GList **word_list_pointer = &word_list;
rekord *used_word = g_malloc(sizeof(rekord));
word_tree = g_tree_new(strcmp());
gchar *word;
text_view = GTK_TEXT_VIEW(lookup_widget(GTK_WIDGET(menuitem), ''textview1''));
text_buffer = gtk_text_view_get_buffer(text_view);
gtk_text_buffer_get_start_iter(text_buffer, &start_word);
gtk_text_buffer_get_start_iter(text_buffer, &end_word);
while (gtk_text_iter_forward_word_end(&end_word)){ //van még szó?
start_word = end_word;
gtk_text_iter_backward_word_start(&start_word);
word = gtk_text_buffer_get_text(text_buffer, &start_word, &end_word, TRUE);
word = g_utf8_strdown(word, strlen(word));
if ((used_word = g_tree_lookup(word_tree, word)) == NULL){ //lóg a fán ez a szó
used_word = (rekord *)malloc(sizeof(rekord));
used_word -> word = g_strdup(word);
used_word -> presence = 1;
g_message(''%s(): first read word: %s'', __func__, word);
g_tree_insert(word_tree, g_strdup(used_word -> word), used_word); //fen a fán a szó
g_free(word);
}else{
used_word -> presence++; //a szó a fán volt ezért megjegyzem
}
}
g_tree_foreach(word_tree, from_tree_to_list, word_list_pointer); //itt is fagy
g_tree_destroy(word_tree);
}
A fügvény gomblenyomásra fut le és egy szövehszerkesztőben lévő szövegről kellene statisztikai infókat visszaadnia. A kód lefordúl, de hibát ír ki:
callbacks.c: In function ‘on_used_words1_activate’:
callbacks.c:913: warning: passing argument 1 of ‘g_tree_new’ makes pointer from integer without a cast
callbacks.c:925: warning: incompatible implicit declaration of built-in function ‘strlen’
futatáskor pedig szegmens hibával kilép a progiból....
Előre is köszi a segítségeket. észrevételeket!
Forest -
Forest_roby
őstag
Hi!
Megnéznétek, hogy ezzel mi a gubanc? /még mindig nem tudok normálisan bánni a * és az & jelekkel/
code:
1. fv:
void mark_set_func(GtkTextBuffer *buffer,/*buffre*/
GtkTextIter *newpoz,/*new loc*/
GtkTextMark *mark,/*being set mark*/
gpointer *t)
{
gchar *m;
gint offset;
offset=gtk_text_iter_get_offset(newpoz);
gtk_statusbar_pop(GTK_STATUSBAR(t[0]),0);
m=g_strdup_printf(''cursor pozicion:%d'',offset);
gtk_statusbar_push(GTK_STATUSBAR(t[0]),0,m);
g_free(m);
g_message(''----------------------------------------'');
g_message(''%d. karakternél van a cursor!\n'', offset);
.....
.....
.....
}
----------------------
2. fv:
void
on_myeditor_window_realize (GtkWidget *widget,
gpointer user_data)
{
GtkWidget *combo;
GtkWidget *text;
GtkTextBuffer *buffer;
GtkWidget *bar;
text=lookup_widget(widget,''myeditor_textview'');
bar=lookup_widget(widget,''myeditor_statusbar'');
buffer=gtk_text_view_get_buffer(GTK_TEXT_VIEW(text));
combo = lookup_widget(widget,''textstyle_comboboxentry'');
gpointer* t[5];
t[0] = combo;
t[1] = bar;
g_signal_connect ((gpointer)buffer,''mark-set'',G_CALLBACK(mark_set_func),t);
gtk_statusbar_push(GTK_STATUSBAR(bar),0,''ready'');
}
--------------
--------------
A probléma a t[5] tömb-el lesz vhol. A cél az, hogy egy tömbben eltároljak pointereket és a tömbre mutató pointert adjam át az 1. fv-nek, mert csak 1 db pointert tudok átadni.
A 2. fv-ben lévő t tömbben szeretném eltárolni a poitereket és ezt átadni az 1. fv-nek.... nyilán rosszúl. : (
Hogy kell ezt helyesen megcsinálni?
Előre is köszi!
Forest
mod: Jester01 adta az ötletet, hogy így csináljam, csak a megvalósításban már nem tudott segíteni - kilépett az msn-ből
[Szerkesztve] -
Forest_roby
őstag
válasz
Jester01 #2141 üzenetére
Hi!
Ezt így ezzel a táblázattal biztos, hogy nem tudom én megcsinálni. Az ékezetes betűk indexelésénél vannak problémák. Ha utf-8 kodolásban írom a progit, akkor az ékezetes betűk két helyet foglalnak el és hibaüzenet jön... Ha átalakítom a progit iso-8859-2 kodolásura, akkor meg nem jelennek meg az ékezetes betűk a progiban és bár működni fog a program, rosszúl fog működni....
Mit tanácsolnál? /bár nem nekem fontos a dolog.... -
Forest_roby
őstag
jah, van!
A lefoglalt memóriaterületet amikor kezded feltölteni szöveggel az trükkös rész. Lehet egyszerűen csinálni és lehet jól csinálni. ha minden ciklusban megkeresed a szöveg végét az nem tul hatékony eljárás lenne. A lefoglalt memóriaterület pointerét le kellene másolni és minden ciklusban növelni az értékét annak megfelelően, hogy 1 karakterrel nőt elötte a szöveg v 2 -vel. igy mindig jó helyen állna a pointer. Kiváncsi lennék, hogy ezt hogy valósítanák ( hogy valósítanám meg? ) -érdekes feladat.... Lehet nekiálok! -
Forest_roby
őstag
válasz
Forest_roby #2146 üzenetére
mondjuk én ilyesmire gondoltam:
Feltöltöd a táblázatodta ugy, ahogy Jester01 mutatta:
char* tabla[255] = {0, }
tabla[ (unsigned char)'á' ] = ''a''';
tabla[ (unsigned char)'é' ] = ''e''';
stb....
...
utánna lefoglalsz egy elegendően nagy memóriaterületet (malloc) és végigmész karakterenként a szövegen, végrehajtod a cserét mindig és ezt szépen lejegyzed a memterületre -mindig hozzáfűzéssel és a végén a lefoglalt memterületeden ott lesz a szép uj szöveged! -
Forest_roby
őstag
miért nem másolod be ide? Aztán eldöntjük, hogy akarunk -e foglalkozni vele vagy nem.
Előljáróban:
assemblys trükk - xrate ( translate szlengesen ) asszem a parancs neve. Nyugi, nem assemblys megoldást akarok mondani. A lényeg az, hogy csinálhatnál egy nagy táblázatot, amiben az egyes karakterekhez egy másikat rendelsz. Ezt be a memóriába és utánna már csak a táblázaton kell keresni az adott karakter párját. Ennél gyorsabb, működő megoldást nem fogsz csinálni az tuti!
Sok sikert!
mod: mondjuk nem részleteztem a módszer lényegét, de talán nem is kell. Ha érdekel: fontos, hogy minden karakternél futtas egy keresést a táblán és cserélj, ha nem akarnál cserélni az adott helyen akkor a táblában a karakter párja saját maga...... -persze itt nem egy karakter van hanem több, ez nem lehet akadály... : )
[Szerkesztve] -
Forest_roby
őstag
okay sracok, értem és használom is a fv.-t. Eszembe nem jutott irni egy ujat, ha itt van ez amit lehet hasznalni (biztos jobban megirtak, mint amire en kepes lennek). Az egeszet azert kerdeztem meg, mert fura volt hogy ez ilyen bonyolult -persze ez velemeny kerdese. Szeretem en a c -nyelvet, meg ebben tudok a legjobban programozni es tenyleg nagyon jo, de a stringek kezelesevel az igazat megvalva nem vagyok megelegedve ( es nem en vagyok az egyetlen ). Mar a glib iroi is eszre vettek ezt, gondolom ezert az a SOK uj fv stringekre. Legtipikusabb!: ''szoveg01'' + ''szoveg02'' nem értelmes. Saját vélemény, de ezt szerintem mindenki olyan termeszetesnek gondolna, hogy ez mukodik, pedig nem : | . No mindegy, megprobalok kibekulni ezzel a dologgal es bocs -nem akartam vitat. ( az elejen tenyleg azt hittem, hogy van egyszerubb megoldas. )
-
Forest_roby
őstag
Jester01, Robaj!
vhogy bonyolultnak tunt egy ( 'komolyabb' ) fv. -t hasznalni 2 szo osszehasonlitasara. -
Forest_roby
őstag
Hi!
Végülis egyszerű kérdés, csak vhogy nem jövök rá az egyszerű megoldásra....
Adott egy string-re mutató pointer: gchar* valtozonev;.
Ennek a pointernek a tartalmát szeretném összehasonlítani egy tényleges szöveggel egy if -ben -ha megegyezik akkor vmi, egyébként vmi más.
vmi ilyesmi:
if( valtozonev == ''szöveg szöveg'' )
/*-*/g_message(''-=megegyezik=-'');
.....//nem egyezik meg ág!
persze ez nem jó, de nem tudom, hogy lehetne megcsinálni jól és szépen!
Egy megoldás lehetne az, hogy strcmp -vel összehasonlítom, de nem akarok ágyúval lőni verébre.
Van más egyszerűbb/szebb megoldás?
Előre is köszi a válaszokat! -
Forest_roby
őstag
válasz
Forest_roby #2066 üzenetére
kicsit módosítottam:
ax = pozitív szám
bx = pozitív szám
osszehasonlitas:
cmp bx,ax
jnb userror
xchg bx,ax
userror:
cmp 2,bx ;a 2-vel hasonlítom össze, ha bx nagyobb egyenő, akkor tovább egyébként hiba kiírása és vége!
j?? tovabb
print: nincs közös osztó
jmp vege
tovabb:
cmp bx,ax
j?e? vege ;if equal jump vege else 'ez köv most:'
sub ax,bx ;ax -ba belekerül ax-bx értéke, bx marad, ezzel megvan a 2db kisebb szám is
jmp osszehasonlitas ;ugrás az összehasonlítás részhez
vege:
end
[Szerkesztve] -
Forest_roby
őstag
okay!
Elég rövidke lett, lehet kifelejtettem vmit -nem tom, nekem jónak tűnik!
ax = pozitív szám
bx = pozitív szám
osszehasonlitas:
cmp bx,ax
jnb tovabb
xchg bx,ax
tovabb:
cmp bx,ax
je vege ;if equal jump vege else 'ez köv most:'
sub ax,bx ; ax -ba belekerül ax-bx értéke, bx marad, ezzel megvan a 2db kisebb szám is
jump osszehasonlitas ;ugrás az összehasonlítás részhez
vege:
end
[Szerkesztve] -
Forest_roby
őstag
-
Forest_roby
őstag
Hi!
Assembly:
ax-bem és bx-ben is van egyszám, ax-ben van a nagyobb!!!
Hogy tudom kivonni az ax értékéből a bx értékét ugy, hogy ezt azuj számot belerakjon egy harmadik regiszterbe v. és ez lenne a jobb, rögtön az ax helyére, felülírva ezzel a régi értékét!
( röviden: nem egészen ismerem a sub működését! )
Köszi a válaszokat!
mod:
sub bx, ax ;hova kerül a végeredmény?????
[Szerkesztve] -
Forest_roby
őstag
válasz
Forest_roby #2035 üzenetére
az elözőben kicsit sok a per és vmiért nálam nem is műxik. itt egy másik link:
[link]
köszi a segítséget! -
Forest_roby
őstag
válasz
Jester01 #2029 üzenetére
jahhh, tényleg jó lenne a fv, de most még nem tudom használni eggyik megoldást se mert rossz a target és ha az rossz, akkor rossza a buffer is és akkor nem tudok rá jól hivatkozni - vagyis fagy a progi.
ez nem volt jó: g_message(''A szöveg hossza: %s\n'', gtk_text_buffer_get_char_count(textview_buffer));
nyilván a textview_buffer rossz, hibás....
[Szerkesztve] -
Forest_roby
őstag
válasz
Forest_roby #2028 üzenetére
abszolút véletlen módon találtam benne egy hibát!
GtkWidget *target; helyett GtkTextView *target; kellet volna, de ez a fő hibán nem javított, most is ugyan úgy fagy, ha kiveszem a commentet, csak most más a gcc hibaüzije.
callbacks.c: In function ‘on_open1_activate’:
callbacks.c:229: warning: assignment from incompatible pointer type
callbacks.c:243: warning: comparison between pointer and integer
callbacks.c: In function ‘on_save1_activate’:
callbacks.c:283: warning: assignment from incompatible pointer type
callbacks.c: In function ‘on_save_as1_activate’:
callbacks.c:346: warning: assignment makes pointer from integer without a cast
229: target = lookup_widget(GTK_WIDGET(menuitem), ''myeditor_textview'');
243: if ( size != NULL ) //ez a commentes részben van!
283: target = lookup_widget(GTK_WIDGET(menuitem), ''myeditor_textview'');
ezzel a sorral lesznek a problémák!!!
346: az véletlen, nem commenteztem ki vmit
szóval itt a bibi: target = lookup_widget(GTK_WIDGET(menuitem), ''myeditor_textview'');
mod:
Jester01: ha még mindig kell, akkor tudok adni forrást, bár sztem innen neked már meglesz, ha nem szól és már töltöm is fel vhova.
[Szerkesztve] -
Forest_roby
őstag
Hi!
eddig:
- Lortech köszi!
- Az ablak bezárása és a progiból való kilépés sikerült!
- Ill a másik kérdés is megvan
most:
gcc hibát ír ki, de a progi lefordul -> ha bővítem a progit, akkor vagy lefordú aztán lefagy vagy le se fordul. : (
gcc- hibaüzi:
callbacks.c: In function ‘on_open1_activate’:
callbacks.c:155: warning: passing argument 1 of ‘gtk_text_view_get_buffer’ from incompatible pointer type
callbacks.c:185: warning: passing argument 2 of ‘load_file_to_textview’ from incompatible pointer type
progi forrás részlet!
void
on_open1_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
GtkWidget *window;
GtkWidget *file_chooser;
GtkWidget *target;
GtkTextBuffer *textview_buffer = NULL;
gchar *file_name;
//GtkWidget *dialog;
//GtkTextBuffer *text_buffer = NULL;
//GtkTextIter start;
//GtkTextIter end;
//gchar *text;
//size_t size;
gint response;
window = lookup_widget(GTK_WIDGET(menuitem), ''myeditor_window'');
target = lookup_widget(GTK_WIDGET(menuitem), ''myeditor_textview'');
textview_buffer = gtk_text_view_get_buffer(target);
/*
* A szöveg kiolvasása a szövegszerkesztőből.
*/
/*
text_buffer = gtk_text_view_get_buffer(target);
gtk_text_buffer_get_start_iter(text_buffer, &start);
gtk_text_buffer_get_end_iter(text_buffer, &end);
text = gtk_text_buffer_get_text(text_buffer,&start,&end,TRUE);
size = strlen(text);
if ( size != NULL )
g_message(''Biztos, hogy meg akarsz nyitni vmi-t? %s\n'', size);
//ez így hülyeség, de vhogy le kell ellenőriztetni, hogy üres -e v. nem -e a textview!
//üres szöveg megnyitásánál kekeckedik!
*/
file_chooser = gtk_file_chooser_dialog_new(''Open file'',
GTK_WINDOW(window),
GTK_FILE_CHOOSER_ACTION_OPEN,
GTK_STOCK_OPEN, GTK_RESPONSE_OK,
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
NULL);
response = gtk_dialog_run(GTK_DIALOG(file_chooser));
if (response == GTK_RESPONSE_OK){
file_name = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(file_chooser));
g_message(''File: %s\n'', file_name);
load_file_to_textview(window, target, file_name);
}else{
gtk_widget_destroy(file_chooser);
return;
}
if (file_name != NULL)
g_free(file_name);
gtk_widget_destroy(file_chooser);
}
ha a kicommentezett részt berakom, akkor már tuti fagyni fog a progi a második megnyitásnál!
Mit basztam el?
Előre is köszi a segítségeket!
[Szerkesztve] -
Forest_roby
őstag
Hi!
Férretéve egy kicsit az elöző problémákat, itt egy ujabb. Csak, hogy ne legyen egyszerű az életem, idei évben elkezdtük tanulni a suliban az assembly programozást. Még csak elméleti óra volt, de a tanár mondta, hogy írjunk egy alap rendező programot neki (nem feltétlenül kell működnie, csak elviekben legyen jó), gondolom látni szeretné, hogy mennyit fogtunk fel az óráiból....
Na, szóval rákerestem az interneten : ) a bubble sort szavakra és találtam is szép számmal forráskódot, a baj csak az, hogy nem tudom, hogy hol kezdődik és hol van vége, melyik része kód, melyik nem stb…..
Pl itt egy kód:
;1 Write an alp to sort in ascending order using bubble sort algorithm
; a given set of byte sized unsigned numbers in memory.The sorted
; elements should replace the original unsorted elements in memory.
name bubblesort
page 60,80
title ascending order using bubble sort
.model small
.stack 64
.data
a db 34h,78h,56h,47h
si_ze dw $-a ;si_ze=no of elements
.code
bubsort:
mov ax,@data
mov ds,ax
mov bx,si_ze
dec bx ;bx=no of passes needed to complete sorting(n-1)
outlup:
mov cx,bx ;cx=no of comparisions to be performed in a pass
mov si,0
inlup:
mov al,a[si]
inc si
cmp al,a[si]
jb go_on
xchg al,a[si]
mov a[si-1],al
go_on:
loop inlup ;dec cx,until cx=0
dec bx
jnz outlup
int 3 ;breakpoint interrupt
align 16
end bubsort
Annyira rájöttem, hogy a ; után comment jön…. : )
Vki el tudná nekem ezt magyarázni, pl: mi az a @data, vagy ez: inlup: <-- ez a programhoz tartozik?
Asszem értitek a problémát….
Megint előre is köszönöm a segítségeteket! -
Forest_roby
őstag
válasz
emitter #2021 üzenetére
void
on_quit1_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
g_message(''EXIT\n'');
gtk_exit(EXIT_SUCCESS);
}
ez működik 100%-osan! Ez a fv, a menu/kilép gomb lenyomására fut le és kilép a progiból!
nekem az kellene, hogy ha az ablakkereten lévő x -re kattintok, akkor is befejeződjön a program, mert ilyenkor bezárja az ablakot, de a program fut tovább......
remélem így már érthető a probléma! -
Forest_roby
őstag
válasz
emitter #2019 üzenetére
nem tudom mire gondolsz....
a baj az, hogy nem tudok arra a gombra hivatkozni.
-------All!----//lenne még kérdésem//---------
ugyebár szövegszerkesztőt kell csinálni és a tanár nem tudja normálisan elmagyarázni, hogy mit-hogyan kell csinálni, viszont elvárja, hogy hipp-hopp megcsináljuk. Szóval remélem még nem unjátok a hülye kérdéseimet.
ujabb:
file megnyitás - file tartalmát be kell tölteni a textview -ba erre van egy tökéletesen működő fv, de ugy néz ki nem tudom jól meghívni....
a fv:
int load_file_to_textview(GtkWidget *parent, GtkTextView *text_view, char *filename){
....
}
és az open gomb:
void
on_open1_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
GtkWidget *window;
GtkWidget *file_chooser;
GtkWidget *target;
GtkTextBuffer *buffer;
gchar *file_name;
gint response;
window = lookup_widget(GTK_WIDGET(menuitem), ''myeditor_window'');
target = lookup_widget(GTK_WIDGET(menuitem), ''myeditor_textview'');
buffer = gtk_text_view_get_buffer( GTK_TEXT_VIEW(target) );
file_chooser = gtk_file_chooser_dialog_new(''Open file'',
GTK_WINDOW(window),
GTK_FILE_CHOOSER_ACTION_OPEN,
GTK_STOCK_OPEN, GTK_RESPONSE_OK,
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
NULL);
response = gtk_dialog_run(GTK_DIALOG(file_chooser));
if (response == GTK_RESPONSE_OK){
file_name = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(file_chooser));
load_file_to_textview(window, buffer, file_name);
}else{
gtk_widget_destroy(file_chooser);
return;
}
if (file_name != NULL)
g_free(file_name);
gtk_widget_destroy(file_chooser);
}
a ''fv''-ben definiált hibát dob ki:
A fájl nem nyitható meg olvasásra: ’/home/forest/Desktop/proba.txt’: Hibás fájl leíró
Na szóval ez lenne az amivel az elmult pár órámat töltöttem.....
Köszi az összes segítséget!
[Szerkesztve] -
Forest_roby
őstag
tom bugyuta kérdés, de már nagyon idegesít. Hogyan lehet beállítani, hogy az ablakkereten történő bezárásra ne csak az ablakot tüntesse el, hanem ki is lépjen a programból?
ugy mint a kilépés gombra:
void
on_quit1_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
g_message(''EXIT\n'');
gtk_exit(EXIT_SUCCESS);
}
//ez spec a menüben a kilépés gomb
/ glade + c / -
Forest_roby
őstag
Hi!
még maradok a témánál, mert jó munkát akarok.
A file létrehozást megcsináltam a system(''touch ....'') paranccsal ( thx ph! ), de nem akarom, hogy csak linux alatt lehesen használni a progit. van vmi módszer üres file-ok létrehozására a c-ben vagy a gtk könyvtárban /én nem nagyon találtam/ ill. ha nincs akkor windowsban hogy lehet ezt megcsinálni?
előre is köszi! -
Forest_roby
őstag
Hi!
c/galde
text editor csinálunk - az elején tartunk.
ha beírok vmi szöveget és rámegyek a mentésre, akkor bejön egy szabvány mentés abalak ( előre definiált ablakok), beírom a file nevet és rákattintok a mentésre. a gomb hatására kiolvassa a filenevet, ez idáig rendben is van, de milyen parancs hatására menti is el fizikailag a winyóra a txt file-t, ami a text mezőben található?
Előre is köszi a válaszokat!
[Szerkesztve] -
Forest_roby
őstag
válasz
(Bundás) #2004 üzenetére
Érdekes kérdés. Nagyon függ a válasz a megfogalmazáson.
Ha egy program.c lefordítok és lesz egy program nevű futatható progim, akkor az a progi a program.c -t simán modosíthatja, amit a program forrásának hívunk.....
viszont saját magát nem modosíthatja......./ legalábbis nem hinném /
/.....ez az én véleményem...../ -
Forest_roby
őstag
válasz
Forest_roby #1998 üzenetére
itt a progi: [link]
az src/callback.c a fontos.
kaptam mégegy hibaüzit:
*** glibc detected *** corrupted double-linked list: 0x0819cae0 ***
Félbeszakítva -
Forest_roby
őstag
válasz
Jester01 #1983 üzenetére
HI!
Nagyon jó, tuti, de van egy kis baj. A free(alap); miatt csak egyszer tud lefutni a fv. Vagy pontosabban ha többször akarom lefutattni a progit akkor ilyen hibával kilép:
*** glibc detected *** free(): invalid next size (fast): 0x0819e3b8 ***
vmi gáz van ott a free(alap) -al, de nem tudom biztosan, hogy mi.
ha érdekel belinkelhetem a progit. ( full egyszerű ) -
Forest_roby
őstag
azért leírom, hogy tud. A könyv erősen linuxra íródott, azzal nem foglalkozik, hogy windowsban ezeket hogy kell megcsinálni/ mit kell rajta módosítani, hogyan kell fordítani stb....
ui.: egyébként gondolom a sulidban ugyis fognak ajánlani pár könyvet nektek.....
[Szerkesztve] -
Forest_roby
őstag
Hi!
Nem akarom elrontani, ugyhogy inkább megkérdezlek titeket. ( a kapott válaszból talán tudok tanulni )
A a fv-hívás, visszatérési érték, pointerek ha keveredni, akkor már elég homályosak az ismereteim.....
szóval van egy fv-em benne egy char alap[] változóval és ehhez szeretnék hozzáfüzni több char változó tartalmát is, mivel ezt a műveletet elég sokszór kell megejteni erre kellene írni egy fv-t.
az alap fv olyan hogy:
..... () {
char alalp[] = ''ls'';
..... fv hívás
..... --||--
..... --||--
..... --||--
} -a pontok helyén általában hozzáfűznék vmi az alap változóhoz.
----------------------
a hozzáfűzés:
char a[] = ''vmi'';
char b[] = ''más'';
char *c = malloc( strlen(a) + strlen(b) + 1 );
strcpy( c, a );
strcat( c, b );
strcpy( a, c );
printf( ''%s\n\n'', a );
free( c );
végeredménybe az a változó valamimás lesz! Ezt kellene fv-be gyúrni és úgy hogy az alap változzon mindig...
vmi ilyesmire gondoltam:
char osszefuzes(char alap, char plus){
char a[] = alap;
char b[] = plus;
char *c = malloc( strlen(a) + strlen(b) + 1 );
strcpy( c, a );
strcat( c, b );
strcpy( a, c );
printf( ''%s\n\n'', a );
free( c );
} -csak nem tudom, hogy ez jó -e és, hogy mi a return(....) -> hogy az alap változzom.
Hú remélem érthető volt.
Előre is köszi a segítségeket!
mod:
és persze a cél az, hogy az alap fv -ből hívogatom ezt az összefűzés fv-t és az alap fv-ben lévő alalp[] változóhoz füzzön hozzá szöveget......
[Szerkesztve] -
Forest_roby
őstag
Hi!
glade & c:
rossz:
callback.c
....
void
on_ok_button_clicked (GtkButton *button,
gpointer user_data)
{
GtkWidget *a_checkbutton = lookup_widget(GTK_WIDGET(button),
''a_checkbutton'');
gboolean gtk_toggle_button_get_active(GtkToggleButton *a_checkbutton)
{
if (a_checkbutton == TRUE) g_message(''TRUE\n'');
}
}
.....
azt szeretném, hogy ha a_checkbutton aktív, akkor írjon ki vmi szöveget, de nem megy. : (
légyszi segítsetek!
Előre is köszi a segítséget! -
Forest_roby
őstag
HI!
Ezt a kis fv-t gyorsan összedobtam, hogy legyen mihez viszonyítani ( jól műxik ):
double flash( FILE *allomany ){
char sor[255];
int ertek[8];
int led =0;
int i = 0;
while( fgets(sor, 255, allomany)!=NULL ){
ertek[i] = (strtod(sor, NULL));
i++;
}/*while*/
led = ertek[0]*1+ertek[1]*2+ertek[2]*4+ertek[3]*8+ertek[4]*16+ertek[5]*32+ertek[6]*64+ertek[7]*128;
return(led);
}/*flash*/ /nyolc sort tettem a txt fileba/
Vmi hasonló fv. kellene csak ne soronként tegyen egy értéket a tömbbe, hanem karakterenként és soronként uj ciklust kezdjen a progi - persze a return értékkel nem kell foglalkozni, mert az modosul....../modosítom/.
Szóval, hogy lehet karakterekként beolvasni egy sort?
Előre is köszi a válaszokat!
[Szerkesztve] -
Forest_roby
őstag
műxik, csak rendszergazda jog kell hozzá
-
Forest_roby
őstag
szerintem ez az outp() fv hiányzik, ezt hogy tudom feltelepíteni?
emitter :
jahh...
gcc -c Bcount.c -o lpt.out
nem is tudom, hogy honnan vettem ezt a -c -t. kivettem és ugy fordítottam és akkor kiírta, hogy:
gcc Bcount.c
/tmp/ccqJCFWG.o: In function `main'count.c
.text+0x34): undefined reference to `outp'
collect2: ld returned 1 exit status
[Szerkesztve] -
Forest_roby
őstag
bakker, már nem tudtam mod -olni!
feltelepítettem ezt:
sudo apt-get install libncurses5-dev
és most le is fordult a progi, de a végeredmény nem változott:
forest@forest-gep:~/Desktop/c/devc++/bcount$ ./lpt.out
bash: ./lpt.out: Hozzáférés megtagadva
forest@forest-gep:~/Desktop/c/devc++/bcount$ chmod 777 lpt.out
forest@forest-gep:~/Desktop/c/devc++/bcount$ ./lpt.out
bash: ./lpt.out: cannot execute binary file -
Forest_roby
őstag
okay, megpróbálom!
-
Forest_roby
őstag
válasz
Forest_roby #1950 üzenetére
lehet, hogy hülyeséget csináltam.
feltelepítettem ezt: [link]
és most szépen le is fordítja a gép a progit csak épp nem tudom elindítani.
hozzáférés megtagadva
erre: chmod 777 progi
válasz: bash: ./progi: cannot execute binary file
nem megy..... -
Forest_roby
őstag
válasz
paramparya #1949 üzenetére
igen azt látom, de mi a megoldás?
hiányzik ez a conio.h vagy rosszul fordítottam le?
ha hiányzik, hogy tudom beszerezni? ha rosszul fordítottam le, hogy tudom helyesen lefordítani?
.....
....
...
..
. -
Forest_roby
őstag
hi!
Lényegében winre írták az egészet, de van benne egy devc++ al írt c progi, amit talán le tudok fordítani. A baj az, hogy include olva van benne egy conio.h fej-álomány és nem tudom, hogy hogyan fordítsam le linuxra. Lehet, hogyhiányzik vmi a gépről. nem tom.
A progi:
/*********************************************
binary counter : DEV C++ 4.9.4.1 version
This will count from 0 to 255
This assumes your printer port address
is 0x378 and also pauses for 250 mS between
every count
**********************************************/
#include <stdio.h>
#include <conio.h> /*required for _outp*/
int main()
{
int x;
for(x = 0;x<=255;x++)
{
_outp(0x378,x);
sleep(250);
}
return 0;
}
Hogy tudom én ezt lefordítani?
gcc -c Bcount.c -o Bcount.o parancsra ezt írta ki:
Bcount.c:9:42: error: conio.h: Nincs ilyen fájl vagy könyvtár
Bcount.c:20: error: stray ‘\26’ in program -
Forest_roby
őstag
Hi!
LPT port programozásához tudtok vmi infót adni c -nyelven. Ha nagyon nincs semmi akkor assembly is jó lesz, ugy is be lehet illeszteni c-nyelvbe. Linux op-ről lenne szó, már ha ez számít.
Előre is köszi a válaszokat! csá -
Forest_roby
őstag
Hi!
Lehet változót létrehozni ciklusban? Minden ciklusban egy új változót?
-= C nyelv =- -
Forest_roby
őstag
nem -ez így mégse jó -én nem erre gondoltam.
Azt kell csinálni, hogy egy oszlopba kiiratni az egésszet és a ciklusok között vmi elválasztót kiiratni - így tudod szeparálni a különböző tömböket. Ha ez kész egy másik progival megcsinálni a végső text filet. sztem máshogy nem nagyon megy - persze lehet memóriából is csinálni ez egészet.
1
2
3
4
5
6
-
7
8
9
10
11
12
-
...
és ebből:
1___7___x___y
2___8___z
3___9
.
.
.
.
.
mod: NEM! tömbökbe kellene menteni az oszlopok tartalmát, abbol meg pofon egyszerű lenne a mátrixot megcsinálni! A kérdés persze az hogy hány tömb kellene ehhez?
[Szerkesztve] -
Forest_roby
őstag
válasz
Jester01 #1907 üzenetére
config.log részletek:
configure:3986: checking for PACKAGE
configure:3991: $PKG_CONFIG --exists --print-errors ''$pkg_modules''
Package gtk+-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gtk+-2.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gtk+-2.0' found
configure:3994: $? = 1
configure:4005: $PKG_CONFIG --exists --print-errors ''$pkg_modules''
Package gtk+-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gtk+-2.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gtk+-2.0' found
configure:4008: $? = 1
Package gtk+-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gtk+-2.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gtk+-2.0' found
configure:4029: error: Package requirements (gtk+-2.0 >= 2.0.0) were not met.
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
&
forest@forest-gep:~/Projektek/first$ sudo apt-get install gtk+-2.0
Password:
Csomaglisták olvasása... Kész
Függőségi fa építése... Kész
E: Nem található a(z) gtk+-2.0 csomag
forest@forest-gep:~/Projektek/first$
HELP!
mod.:
config.log megtekinthető az elöző helyen!
[Szerkesztve] -
Forest_roby
őstag
Hi!
program fordítás közben ezt a hibát kaptam:
[link] --> ( nem talál make filet, pedig kellene lennie )
A program egy glade projekt.
op.: Ubuntu linux
Tud vki segíteni?
ui.:
A Nagy Linux topicba is belinkelem ezt a kérdést, hátha ott talán jobban tudják!
ui2.:
én írtam:
./autogen.sh
./configure
make ---> itt a hiba!
[Szerkesztve] -
Forest_roby
őstag
Bocs a sok egymás utáni hozászólások miatt, de már egyiknél se tudtam módosítani a régit!
Javítanom kell!
#1860 #1863 #1864 --->
mindenhol a bit helyet bájt-ot kellett volna írnom!
8 bájt-ot vagy 64 bit-et
tiszta égés!
Új hozzászólás Aktív témák
Hirdetés
● olvasd el a téma összefoglalót!
- Apple iPhone 12 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- BESZÁMÍTÁS! ASRock B550M R5 5600 16GB DDR4 512GB SSD RX 6600 XT 8GB Kolink Observatory LM RGB 600W
- BESZÁMÍTÁS! ASUS TUF Z390-PRO GAMING alaplap garanciával hibátlan működéssel
- ÁRGARANCIA!Épített KomPhone Ryzen 5 5600X 16/32/64GB RAM RTX 4060 8GB GAMER PC termékbeszámítással
- BESZÁMÍTÁS! Apple MacBook Pro 14 M4 16GB RAM 512GB SSD garanciával hibátlan működéssel
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: Promenade Publishing House Kft.
Város: Budapest