Hirdetés

2024. június 10., hétfő

Gyorskeresés

Útvonal

Fórumok  »  Szoftverfejlesztés  »  Programozás topic (kiemelt téma)

Téma összefoglaló

Téma összefoglaló

  • Utoljára frissítve: 2023-12-13 06:18:28

LOGOUT.hu

Összefoglaló kinyitása ▼

Hozzászólások

(#2001) Forest_roby válasza Jester01 (#2000) üzenetére


Forest_roby
őstag

jah, lemaradt egy csillag és kiszedtem azt a sort.

thx, műxik! :R

-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D

(#2002) amargo


amargo
addikt

Sziasztok!

Volna egy kérdésem. Pdf-et szeretnék kinyomtatni, ShellExecute (parancssorból-akár).
Ha megadom, AcroRd32.exe /p /h (/t -vel ugyan ezt csinálja asszem) [pdf file] ''nyomtatoneve'' akkor hide olva a nyomtató ablakot meg is kezdi a nyomtatást az adott nyomtatóra. Viszont a reader nyitva marad valaki tuda már bezárni parancssorból?

Köszi
amargo

“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”

(#2003) cucka válasza amargo (#2002) üzenetére


cucka
addikt

taskkill-ell ki tudod nyírni, de azt nem tudom, hogy ilyenkor mi lesz az elkezdett nyomtatással.

(#2004) (Bundás)


(Bundás)
addikt

ZH kérdés volt, valaki erősítsen meg:

''lehet-e olyan programot írni, ami módosítja saját forráskódját?''

(#2005) Forest_roby válasza (Bundás) (#2004) üzenetére


Forest_roby
őstag

É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...../

-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D

(#2006) cucka válasza (Bundás) (#2004) üzenetére


cucka
addikt

igen, főleg vírusoknál lehet vele találkozni. [link][link]

[Szerkesztve]

(#2007) bdav válasza Forest_roby (#2005) üzenetére


bdav
őstag

de én elképzelhetőnek tartom. c/c++ alatt mondjuk egy példa. létrehozol egy pointert valahova mint változó. oda beírsz valamit. majd átkasztolod a pointered függvénypointerré vagy objektumra mutató pointerré és meghívod a függvénypointert / objektum tagfüggvényét (függvény ptr-t sose használtam de létezik, nem tudom hogy meg lehet e csinálni egy ilyen cast - ot, de az objektumosat biztos). na a hívás után szépen az fog programutasításként értelmeződni amit előzőleg beírtál a memóriába. persze ehhez nagyon kell tudni hogy mit írsz be :) (nem tudom hogy a vírusok így csinálják e). ezzel a módszerrel felülírhatod a programod normális utasítás részét is ha eltalálod a memóriacímeket.

10 féle ember van a világon. Aki ismeri a kettes számrendszert és aki nem. ''A név nincs hosszabb páncélszekrény''

(#2008) (Bundás)


(Bundás)
addikt

Köszönöm srácok. :R

(#2009) amargo válasza cucka (#2003) üzenetére


amargo
addikt

Elfelejtettem írni, már aznap meg volt a megoldás.
CreatPrecess el hozom létre Ide-ig várok egy külön szállban, hogy tudjam folytatni a dolgokat és utána nyírom ki, a nyomtatás befejeződik valamikor közben.
Csak ez olyan fura megoldás.. de a netet felturva szintén csak hasonlókat találtam.. esetlek még a megnyitott prosecc handlerjének nem lehet valami exit eseményt küldeni?

“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”

(#2010) Forest_roby


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]

-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D

(#2011) doc válasza Forest_roby (#2010) üzenetére


doc
nagyúr

a galde glade akar lenni? ha jól tudom, az gtk-s felülettervező, ugye?
maga a dialógus nem menti el a szöveget, nézd meg hogy a gtk-ban milyen osztályok/függvények vannak a szöveges file-ok kezeléséhez, és azzal te magad tudod kimenteni a dialógus által visszaadott nevű file-ba

(#2012) Forest_roby válasza doc (#2011) üzenetére


Forest_roby
őstag

igen glade!

Tudom, hogy a dialogus nem menti el, a kérdés az volt, hogy hogyan tudom elmenteni!

mod: mindegy...sztem ezt meg tudom majd csinálni.... /talán....


[Szerkesztve]

-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D

(#2013) ketyosz


ketyosz
csendes tag

Szervusztok,

Egy nem teljesen idevágó kérdésem lenne, de hátha tudtok segíteni...
Nálunk az iskolában készítettem egy info-standot. Egy ős-Olivetti cucc, benne ''új'' számítógéppel, stb. Általános információkat jelenít meg, a suli térképét, órarendet lehet rajta nézni, korlátozottan meail-ezni és web-ezni. Innen jött az ötlet, hogy mi lenne, ha lehetne vele képet készíteni (egy webkamerával) és azt el lehetne küldeni email-ben. Ez eddig nem is nagy kunszt, simán megoldható. Igen ám, de akkor már bonyolítsunk!
Egy olyan programra lenne szükségem, ami keretet/logót/előteret tud rátenni a webkamera képére és úgy menti a kész képet. Egészen pontosan valami olyan dologra lenne szükségem, mint ami például a SE k700i/750i-k ben van benne. Kiválasztod a témát (például börtönrácsok) és amikor megnyomod az exponáló gombot úgy készül a kép, hogy börtönben vagy.
Ha esetleg nem tudtok ilyen szoftvert, de tudtok olyan webkamerát, amihez mellékelnek ilyesmit, akkor ne az is nagyon jól jönne.
Elég sok mindent megcsináltam már a géphez, nemsokára kész egy 3d-s épületbejárás, nincs már energiám nekiállni még egy ilyesminek programozni, hiszen egy ilyesmit már biztosan készített valaki.
A cél egy minél egyszerűbb rendszer lenne (elkészítek egy keretet, esetleg van már előre készítve valami, meg van egy exponálás gomb és kész...), de bármi érdekel.

Előre is köszönöm a segítséget!

eccer...

(#2014) Jester01 válasza ketyosz (#2013) üzenetére


Jester01
veterán

Elkészíted a webkameráról a képet normál módban, majd utána rakod rá a keretet/akármit. Ehhez én az (ingyenes) ImageMagick programcsomagot ajánlom, főleg mivel nem írtad milyen oprendszer alatt vagy. De biztos van rá ezer másik is.

Jester

(#2015) Forest_roby


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!

-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D

(#2016) Jester01 válasza Forest_roby (#2015) üzenetére


Jester01
veterán

Természetesen van. Szerinted a touch-ot miben írták?
FILE* F = fopen(''/tmp/empty.txt'', ''w'');
fclose(F);

Jester

(#2017) Forest_roby válasza Jester01 (#2016) üzenetére


Forest_roby
őstag

:Y :Y :Y :Y
megvilÁÁgosítottál! Azt hittem, hogy ez csak létező fileok megnyitására szolgál és persze annak olvasására/írására.
:C :DD :C

[Szerkesztve]

-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D

(#2018) Forest_roby


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 /

:R :R

-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D

(#2019) emitter válasza Forest_roby (#2018) üzenetére


emitter
őstag

nem értek az ablakozáshoz, de egy return() a főprogiban nem oldaná meg?

(#2020) Forest_roby válasza emitter (#2019) üzenetére


Forest_roby
őstag

nem tudom mire gondolsz.... :(

a baj az, hogy nem tudok arra a gombra hivatkozni.

-------All!----//lenne még kérdésem :U //---------
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.... :O

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..... :W

Köszi az összes segítséget!

[Szerkesztve]

-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D

(#2021) emitter válasza Forest_roby (#2020) üzenetére


emitter
őstag

hogyha a főprogiból hívod a on_quit1_activate fv-t, akkor a hívása után rakj be egy
return 1;
sort, ezzel ki is lép a progiból

vagyis mégjobb, ha egy exit()-gyel lépsz ki, így ezt akár egy fv-en belül is megteheted.. mondjuk nem tudom, mennyire szép megoldás ez :U

tehát:


...
on_quit1_activate(...);
exit(EXIT_SUCCESS);
...


[Szerkesztve]

(#2022) Forest_roby válasza emitter (#2021) üzenetére


Forest_roby
őstag

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!

-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D

(#2023) amargo válasza Forest_roby (#2022) üzenetére


amargo
addikt

Itt nincs valami:
Application->Terminate();
vagy
Application.Exit();
Ilyesmi?

GTK-t nem ismerem, de kötve hiszem, hogy nem lehet a bezáró X-et figyelni.. valahogyan?

“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”

(#2024) doc válasza Forest_roby (#2022) üzenetére


doc
nagyúr

gtk-hoz nem ertek, de wxWidgets-ben ugy mukodik, hogy az esemenytablaban letre kell hozni egy EVT_CLOSE esemenyt, es atadni neki a fuggveny cimet amit meg akarsz hivni
ha gtk-ban is van ilyesmi, akkor errefele nezelodj

(#2025) Forest_roby


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!

-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D

(#2026) Lortech válasza Forest_roby (#2025) üzenetére


Lortech
addikt

@data az az adatszegmens kezdőcíme, abban a sorban ezt beleteszi ax-be.
:inlup, :outlup egy címke, másképpen szimbólum (nincs nyoma a kódban). A program_kód_ minden sora egy-egy cím végülis, ha egy utasítást vagy ''adatdefiníciót'' tartalmazó sort megelőz egy cimke: alak, akkor ez a címke az őt követő kód címét szimbolizálja. Egy hívásban, ugrásban, ciklusban pedig felhasználhatod ezt a szimbólumot, hivatkozhatsz rá, rámutat egy címre.
Mint pl itt, a loop inlup. Ez egy ciklusszervezés, ennek hatására ugrik a vezérlés inlupra, és ismétlődik cx=0-ig a ciklus. Maga az utasításkód, a kódszegmens a .code-tól, az adatszegmens a .data-tól kezdődik. A felső sorok a fordítónak szólnak.

Thank you to god for making me an atheist

(#2027) shaft72


shaft72
tag

Sok okos progger van itt, hátha ismertek ilyen programot, vagy tudtok írni ilyet :D

Nekem egy olyan windows alapú program kéne, amely két, ugyanakkora felbontású képet szépen összehasonlít, valamilyen színnel kiemeli a különbségeket, és lehessen benne zoomolni úgy, hogy a marking ne tűnjön el.

Anybody could help?

(#2028) Forest_roby


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]

-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D

(#2029) Jester01 válasza Forest_roby (#2028) üzenetére


Jester01
veterán

A 2 warning szerintem 2 cast-tal orvosolható. A szöveg hosszát pedig a gtk_text_buffer_get_char_count függvénnyel egyszerûen le tudod kérdezni.
Azt, hogy mi a baj a te kódoddal így ránézésre nem tudom, ha adsz teljes forrást ami lefordul akkor esetleg megnézem.

Jester

(#2030) Forest_roby válasza Forest_roby (#2028) üzenetére


Forest_roby
őstag

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]

-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D

(#2031) Forest_roby válasza Jester01 (#2029) üzenetére


Forest_roby
őstag

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. :O

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]

-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D

(#2032) Jester01 válasza Forest_roby (#2030) üzenetére


Jester01
veterán

Ide vele! Valami a widget struktúrával lehet, ha a target NULL...

Jester

(#2033) Forest_roby válasza Jester01 (#2032) üzenetére


Forest_roby
őstag

make dist -eltem: [link]

nyilván tudod, de az src/callback.c -ben van a lényeg!

[Szerkesztve]

-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D

(#2034) Jester01 válasza Forest_roby (#2033) üzenetére


Jester01
veterán

> wget 'http://www.uw.hu/admin/webftp/PHPFTP_main.php?phpftp_cmd=get&phpftp_file=myeditor-0.1.tar.gz'
...
Length: 0 [application/octetstream]

:F

Jester

(#2035) Forest_roby válasza Jester01 (#2034) üzenetére


Forest_roby
őstag

[link] asszem fejből, de nekem gondolkozi fél napot

elküldtem a mail címedre is! ( kis j vel írva )

[Szerkesztve]

-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D

(#2036) Forest_roby válasza Forest_roby (#2035) üzenetére


Forest_roby
őstag

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!

-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D

(#2037) Jester01 válasza Forest_roby (#2035) üzenetére


Jester01
veterán

Mail megjött.
Ez a smiley kell neked azt hiszem: :W
A debug üzenetedbe hal bele :DD A számot ne %s-el írd ki, mert az nem jó :U
g_message(''A szöveg hossza: %d\n'', gtk_text_buffer_get_char_count(textview_buffer));

Jester

(#2038) amargo válasza shaft72 (#2027) üzenetére


amargo
addikt

Azért ez nem olyan egyszerű(szerintem), hogy csak úgy valaki megírja most neked.. bár lehet jó kihívásnak találná, vagy jó 5lete van rá.
Viszont valószínű létezik erre is valami prog. De én nem ismerek [link] google:image/picture match
De, ha 5let kell, nekem van rá, tekintve, hogy sorokban kitudod olvasni BMP-ből a szineket.. ahol eltér a kettő, ott megjelölöd valamivel. Nos ez elméleti volt, ezen a nyomon elindulhat valaki, ha gondolja:

BITMAP bm1;
GetObject(Image1->Picture->Bitmap->Handle, sizeof(bm1), &bm1);

//step through lines of first bitmap two at a time and
//average pixels into the second bitmap
for (int row=0;row<bm1.bmHeight/2;row++)
{
for (int col=0;col<bm1.bmWidth/2;col++)
{
//get addresses of the four pixels in the source bitmap
unsigned char* bm1ptr1=(unsigned char*)bm1.bmBits+(bm1.bmHeight-row*2)*bm1.bmWidthBytes+col*2*bm1.bmBitsPixel/8;
unsigned char* bm1ptr2=bm1ptr1+3;
unsigned char* bm1ptr3=(unsigned char*)bm1.bmBits+(bm1.bmHeight-row*2)*bm1.bmWidthBytes+col*2*bm1.bmBitsPixel/8;
unsigned char* bm1ptr4=bm1ptr3+3;

//get address of the corresponding pixel in the destination bitmap
unsigned char* bm2ptr=(unsigned char*)Image2->Picture->Bitmap->ScanLine[row]+col*bm1.bmBitsPixel/8;

//average source pixel RGB values
BYTE finalRed=(bm1ptr1[0]+bm1ptr2[0]+bm1ptr3[0]+bm1ptr4[0])/4;
BYTE finalGreen=(bm1ptr1[1]+bm1ptr2[1]+bm1ptr3[1]+bm1ptr4[1])/4;
BYTE finalBlue=(bm1ptr1[2]+bm1ptr2[2]+bm1ptr3[2]+bm1ptr4[2])/4;

//put averaged values into the final bitmap
bm2ptr[0]=finalRed;
bm2ptr[1]=finalGreen;
bm2ptr[2]=finalBlue;
}
}

“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”

(#2039) Forest_roby válasza Jester01 (#2037) üzenetére


Forest_roby
őstag

:W :W :W :W :W :W :W :W :W :W :W :W :W :W :W :W
soha nem vettem volna észre! :( :B

köszi: :R :R :R

mod: áááááá, ilyen nincs, akkor miért nem írja ki rosszúl a szöveget és kész, máris látom hogy vmi baj van...... Ez miatt nem kéne, hogy lefagyjon egy progi!

[Szerkesztve]

-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D

(#2040) Jester01 válasza Forest_roby (#2039) üzenetére


Jester01
veterán

Ez a C átka. A stringeket cím szerint adja át, a számokat érték szerint. Vagyis a %s egy pointert vár. Ha a szám nulla (vagyis üres volt a szövegmező) akkor ez egy null pointer lesz amit külön lekezel a printf. De ha valami más számot adsz át, akkor bizony arról a - jó eséllyel érvénytelen - memóriacímről megpróbál olvasni, és így lesz segfault. Egyébiránt a gcc fordításidőben észreveszi az ilyen hibát, ha a -Wall kapcsolót használod (ez mindig jó ötlet):
callbacks.c:231: warning: format argument is not a pointer (arg 4)

Jester

(#2041) mobal


mobal
MODERÁTOR

sziasztok! mit ajánlotok c ++ hoz? devc++ microsoft visual .net studio 2003(?) vagy codeblocks? kezdő vok nemsoká programozni akarok ebben! köszi!

"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."

(#2042) shev7 válasza mobal (#2041) üzenetére


shev7
veterán

attol fugg mit akarsz. Ha ''nullarol'' tanulsz programozni, akkor valami egyszerubbet (akar borland c) ajanlanek, hogy az alapokat is megtanuld. Ha mar tudsz programozni, akkor attol fugg mit akarsz. :) ha windows alkalmazasokat fejleszteni, akkor a VS egesz jo tamogatast nyujt ehhez.

''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''

(#2043) k.t.a.


k.t.a.
senior tag

Hali!

Segítsetek egy picit mert nem jövök rá a megoldásra. A prog nyelv az C.
A problémám meg az, hogy hogyan lehet egy két dimenziós struktúra tömbböt dinamikusan létrehozni, úgy hogy a sorok száma adott, csak az oszlopok száma a dinamikus. Tehát akarok csinálni egy Q[8][n] tömbböt, ahol a n-t előbb ki akarom számolni, és minden elem egy struct. Valahogy úgy kell, hogy
prim *(Q[8]) = new prim[8][n];
ahol prim egy struktúra, és n már előtte ki lett számolva, de erre hibát ír ki, hogy nem adhatok csak konstanst a tömbnek. :F

(#2044) shev7 válasza k.t.a. (#2043) üzenetére


shev7
veterán

ha dinamikusan akarsz teruletet foglalni, akkor c-ben a malloc fuggveny a baratod.

''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''

(#2045) bdav válasza shev7 (#2044) üzenetére


bdav
őstag

... és ne felejts el free-t hívni a dinamikusan foglalt változókra

10 féle ember van a világon. Aki ismeri a kettes számrendszert és aki nem. ''A név nincs hosszabb páncélszekrény''

(#2046) k.t.a. válasza shev7 (#2044) üzenetére


k.t.a.
senior tag

Oké, de így is mennie kellene. Mert egy sima egy dimenziós tömbbel müxik a dolog, így viszont nem megy. Miért? Vagy hogyan kell jól csinálni?

(#2047) k.t.a. válasza bdav (#2045) üzenetére


k.t.a.
senior tag

Oké, nem szoktam álltalában elfelejteni. A new-nak a párja a delelte. A helpben van is egy példa pont két dimenziós tömbbökre, csak pont fordítva.

char (*pchar)[10] = new char[dim][10];
delete [] pchar;


Ez alapján Ti hogyan oldanátok meg az én problémám?

(#2048) bdav válasza k.t.a. (#2047) üzenetére


bdav
őstag

new és delete csak C++-ban van. A legtöbb mai fejlesztőprogi ami erre való az C/C++. A kérdés hogy neked jó-e a C++ vagy szigorúan C kell.

intekkel írom, mert az egyszerűbb most

C megoldás (ebbe lehet hogy van hiba, tök rég nem írtam már Cben dinamikus foglalást):


int tomb**=malloc(8*sizeof(int*)); //ez lefoglal 8 int* nak helyet
for(i=0; i<8; i++) //i -t deklaráld azért előbb
{
tomb[ i]=malloc(n*sizeof(int)); //ez minden tomb[ i]-nek foglal n int helyet
}


A végén egy free(tomb); hívás illik.

ha C++ van:


int tomb**=new int*[8]; //8 int* nak a tömbje
for(int i=0; i<8; i++) //itt már lehet i-t deklarálni menet közben is
{
tomb[ i]=new int[n];
}


végén delete[] tomb;

[Szerkesztve]

[Szerkesztve]

10 féle ember van a világon. Aki ismeri a kettes számrendszert és aki nem. ''A név nincs hosszabb páncélszekrény''

(#2049) k.t.a. válasza bdav (#2048) üzenetére


k.t.a.
senior tag

Köszi szépen! A második verzióra gondoltam. Működik ha minden igaz, csak az elején az int tomb** résznél a csillagok rossz helyen vannak (gondolom csak elgépelted ;) ). Azt hittem for nélkül is meg lehet oldani, azért szenvedtem vele. Mégegyszer köszi! :R

(#2050) bdav válasza k.t.a. (#2049) üzenetére


bdav
őstag

igen, int** tomb. sry reggel van még :)

és akkor hangsúlyozom hogy a 2. verzió az csak C++ alatt érvényes (ha gyakorlati problémát oldasz meg vele akkor tökmind1, de ha pl. suliba kell ahol C-t tanultok épp akkor nem fogják szeretni)

[Szerkesztve]

10 féle ember van a világon. Aki ismeri a kettes számrendszert és aki nem. ''A név nincs hosszabb páncélszekrény''

Útvonal

Fórumok  »  Szoftverfejlesztés  »  Programozás topic (kiemelt téma)
Copyright © 2000-2024 PROHARDVER Informatikai Kft.