مرحبا اخوتي الكرام
اريد المساعدة من اهل الخبرة عن كيفية كتابة كود في لغة السي
كود progress bar
|==================================================>| 100.00 %
في هذا الشكل
ولكم جزيل الشكر
مرحبا اخوتي الكرام
اريد المساعدة من اهل الخبرة عن كيفية كتابة كود في لغة السي
كود progress bar
|==================================================>| 100.00 %
في هذا الشكل
ولكم جزيل الشكر
ليس هناك شيء في لغة C اسمه progress bar ابحث في win32API كما أن Google ينتظرك
بحثت في gogole ولم اجد جواب على سؤالي لقد كتبت كود ولكن لم استطع برمجته بصورة صحيحة
هذا الكود
void doSomethingHard();
int main()
for (int i=0; i<100; i++)
{
doSomethingHard();
}
int doSomethingHard()
{
printf("=", i);
sleep(1);
}
ارجوا المساعدةتم تعديل هذه المشاركة بواسطة farid777 في 29 يناير 2014 في 20:33
اعذرني فلم أفهم ماذا تريد ..
ماهذا
printf("=", i);وما الذي تريده ؟ كود Progress bar ? هذا يتعلق بنظام التشغيل وأعتقد أنك تستخدم ويندوز والأمثلة موجودة إن بحثت
أم أنك تريد القيام بعمل ما أثناء متابعة الـprogress bar تقدمه ؟
هل يمكنك أن تفصل طلبك ؟
السلام عليك اخي الكريم لا اني استعمل LINUX و gcc compiler - وهذا الكود
printf("=", i);يقوم بكتابة ال ============================100.0
ونعم اني اريد اثناء ال progress bar بقراءة ملفات موجودة في ملف ثابت وطباعة اسماء الملفات فقط
اشكرك جدا اخي على المساعدة
تم تعديل هذه المشاركة بواسطة farid777 في 30 يناير 2014 في 00:09
طيب بما أن الموضوع يحتاج إلى API فهناك من يجيبك أفضل مني , ولكن سأقول ما عندي
من هنا
أنقل الكود مع بعض التعديلات
#include <iostream>
#include <windows.h>
#include<cstring>
using namespace std;
int Global=0;
DWORD WINAPI ThreadProc( LPVOID lpParam )
{
for(int i=0;i<100;i++)//AnyThing
{
Beep(i*100,100);
Global++;
}
return 0;
};
int main( )
{
DWORD dwThreadId;
HANDLE hThread = CreateThread(
NULL, // default security attributes
0, // use default stack size
ThreadProc, // thread function
NULL, // argument to thread function
0, // use default creation flags
&dwThreadId); // returns the thread identifier
for(int i=0;i<100;i++)//Progress Bar
{
while(Global<=i);
cout <<"=";
}
while(WaitForSingleObject(hThread,100)!=WAIT_OBJECT_0);
CloseHandle(hThread);
return 0;
}بالنسبة لي , حلّ مشكلتك باستخدام multi threading أي تعدد المسالك ..
ولعل أحد الخبراء يفيدك بإجابة أفضل
بالتوفيق
مشكور اخي وبارك الله فيك :)
السلام عليك اخي بعد عدة محاولات برمجة الكود لقد استطعت بكتابته بصورة صحيحة
هذا الكود
كما ترون لقد كتبت الكود من غير ال API ولكن لقد عجزت عن اضافة ال percent بجانب ال ============
ارجوا المساعدة من اهل الخبرة
#include <stdio.h>
#include <stdlib.h>
#include <curses.h>
#include <unistd.h>
#include <string.h>
void prog(int x);
int main()
{
char *strcat(char *dest, const char *src);
char *strcpy(char *dest, const char *src);
printf("\n");
int x;
prog(x);
}
void prog(x)
{
char str='=';
for(x=0;x<=50;x++)
{
str=+str;
printf("%c", str);
fflush(stdout);
sleep(1);
}
}تم تعديل هذه المشاركة بواسطة farid777 في 30 يناير 2014 في 23:12
لم أفهم الكود الذي كتبته ولكن على أي حال انظر إلى هذا
#include <stdio.h>
#include <stdlib.h>
void DoSomeThing(){
int q;
for(q=0;q<10000000;q++);
}
int main()
{
int i,j,k;
for(i=0;i<100;i++)
{
for(j=0;j<i;j++)
printf("=");
for(k=i;k<100;k++)
printf(" ");
printf("%d%%",i);
DoSomeThing();
system("cls");
}
return 0;
}أو هذا مثلاً
#include <stdio.h>
#include <stdlib.h>
void DoSomeThing(){
int q;
for(q=0;q<10000000;q++);
}
int main()
{
int i,j,k;
for(i=0;i<=50;i++)
{
for(j=0;j<i;j++)
printf("=");
for(k=i;k<=50;k++)
printf(" ");
printf("%d%%\r",2*i);
DoSomeThing();
}
return 0;
}الأمر بسيط إن كنت لا تريد هذا فقط .
السلام عليك اخي وبارك الله بك هذا هو ما كنت اريده بلضبط الكود رقم 2
لك جزيل الشكر اخي :P وإن شاء الله رح افيدك من علمي انت وجميع الاخوة الكرام في اشياء من اختصاصي