نمایش نتایج 1 تا 22 از 22

نام تاپیک: آرایه global

  1. #1
    کاربر دائمی آواتار f_g1348
    تاریخ عضویت
    آبان 1387
    محل زندگی
    اهواز
    پست
    551

    آرایه global

    سلام
    چطور میتونم آرایه ای را در زیر برنامه تعریف کنم که در تمان برنامه قابل دسترس باشد ؟(global)

  2. #2

    نقل قول: آرایه global

    سلام
    آرایه ای که داخل یک متد تعریف می شه فقط داخل همون متد قابل دستیبابی است.

  3. #3
    کاربر دائمی آواتار f_g1348
    تاریخ عضویت
    آبان 1387
    محل زندگی
    اهواز
    پست
    551

    نقل قول: آرایه global

    خوب چکار کنم که بیرون متد هم بشه استفاده کرد ؟

  4. #4

    نقل قول: آرایه global

    بیرون از متد تعریف کن.

  5. #5
    کاربر دائمی آواتار f_g1348
    تاریخ عضویت
    آبان 1387
    محل زندگی
    اهواز
    پست
    551

    نقل قول: آرایه global

    خوب مشکل من اینجاست که ابعاد اولیه برای آرایه ندارم و در یکی از متدها این ابعاد حساب میشه و می خواهم آنجا این آرایه یه جورایی ابعادش مشخص بشه
    در vb.net وقتی آرایه ای را بدون ابعاد در ابتدا تعریف می کنیم می توان با دستور redim دوباره ابعاد را مشخص کرد ، در اینجا چگونه است ؟

  6. #6
    کاربر دائمی آواتار f_g1348
    تاریخ عضویت
    آبان 1387
    محل زندگی
    اهواز
    پست
    551

    نقل قول: آرایه global

    کسی نیست راهنمایی کنه ؟

  7. #7
    کاربر دائمی آواتار ASKaffash
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    تهران
    پست
    2,427

    نقل قول: آرایه global

    سلام
    از جنریک استفاده کن و Static هم باشد :
    public class MyClass
    {
    public static List<int> a =new List<int>();
    }
    حالا هم پویا است و هم سراسری

  8. #8

    نقل قول: آرایه global

    باید از متد Array.CreateInstance استفاده کنی:


    using System;
    public class SamplesArray {

    public static void Main() {

    // Creates and initializes a multidimensional Array of type String.
    int[] myLengthsArray = new int[2] { 3, 5 };
    int[] myBoundsArray = new int[2] { 2, 3 };
    Array myArray=Array.CreateInstance( typeof(String), myLengthsArray, myBoundsArray );
    for ( int i = myArray.GetLowerBound(0); i <= myArray.GetUpperBound(0); i++ )
    for ( int j = myArray.GetLowerBound(1); j <= myArray.GetUpperBound(1); j++ ) {
    int[] myIndicesArray = new int[2] { i, j };
    myArray.SetValue( Convert.ToString(i) + j, myIndicesArray );
    }

    // Displays the lower bounds and the upper bounds of each dimension.
    Console.WriteLine( "Bounds:\tLower\tUpper" );
    for ( int i = 0; i < myArray.Rank; i++ )
    Console.WriteLine( "{0}:\t{1}\t{2}", i, myArray.GetLowerBound(i), myArray.GetUpperBound(i) );

    // Displays the values of the Array.
    Console.WriteLine( "The Array contains the following values:" );
    PrintValues( myArray );
    }


    public static void PrintValues( Array myArr ) {
    System.Collections.IEnumerator myEnumerator = myArr.GetEnumerator();
    int i = 0;
    int cols = myArr.GetLength( myArr.Rank - 1 );
    while ( myEnumerator.MoveNext() ) {
    if ( i < cols ) {
    i++;
    } else {
    Console.WriteLine();
    i = 1;
    }
    Console.Write( "\t{0}", myEnumerator.Current );
    }
    Console.WriteLine();
    }
    }
    /*
    This code produces the following output.

    Bounds: Lower Upper
    0: 2 4
    1: 3 7
    The Array contains the following values:
    23 24 25 26 27
    33 34 35 36 37
    43 44 45 46 47
    */




    البته در کد شما myArray قبلاٌ باید به طور سراسری تعریف بشه. این متد طول هر بعد رو به عنوان یک آرایه و اندیس های شروع رو هم به عنوان یک آرایه می گیره و آرایه رو ایجاد می کنه:
    http://msdn.microsoft.com/en-us/library/x836773a.aspx
    شما به تعداد ابعادت باید آرایه ای رو که طول هر بعد رو پر می کنه رو مقدار دهی کنی مثلاً:
    3 بعدی: 3 مقدار در آرایه
    4 بعدی چهار مقدار در آریه ....

    کد بالا ایجاد 2 بعدی بود این سه بعدی است:

    int[] myLengthsArray = new int[3] { 3, 7, 5 }; int[] myBoundsArray = new int[3] { 2, 1,3 };
    Array myArray=Array.CreateInstance( typeof(String), myLengthsArray, myBoundsArray );



    یعنی آرایه ای که طول بعد اولش 3 دوم 7 و سوم 5 است و اندیس شروعشان به ترتیب 2، 1 و 3 است. که شما برای سهولت همان 0 قرار دهید. تعداد عناصر هر دو آرایه myLengthsArray و myBoundsArray باید برابر باشد.

  9. #9
    کاربر دائمی آواتار f_g1348
    تاریخ عضویت
    آبان 1387
    محل زندگی
    اهواز
    پست
    551

    نقل قول: آرایه global

    سلام دوستان
    من چنین چیزی رو در ابتدای برنامه تعریف می کنم
     string[] Words_Of_Original;

    و در یکی از متدها از کد زیر استفاده می کنم
    string[] Words_Of_Original = txt_Orig.Text.Split(new char[] { ' ', '\n' });

    و برنامه درست کار می کند ولی در متد های دیگر مقادیر آرایه دیده نمی شود
    چه کار باید بکنم ؟

  10. #10
    کاربر دائمی آواتار sirvan-me
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    استان البرز
    پست
    251

    نقل قول: آرایه global

    سلام دوستمون راست میگه چرا از List ها استفاده نمی کنی ... بیرون متدت یه لیست به شکل زیر تعریف کن :
    List<string> List_Words = new List<string>();

    بعد تو متدت خروجی تابع Split رو تو این لیست بریز ... حالا تو هر متدی می تونی سایز لیستت رو فراخونی کنی . تغییر بدی یا مثل آرایه به محتویاتش دسترسی داشته باشی و ...
    List_Words.AddRange(txt_Orig.Text.Split(new char[] { ' ', '\n' }));


    توابع خیلی بیشتری هم نسبت به آرایه برای لیست تعریف شده .. خودت میتونی ببینی

  11. #11
    کاربر دائمی آواتار f_g1348
    تاریخ عضویت
    آبان 1387
    محل زندگی
    اهواز
    پست
    551

    نقل قول: آرایه global

    خوب دوست عزیز اگر از این روش استفاده کنم چطور می تونم به خانه مثلاً شماره 6 لیست دسترسی داشته باشم و مقدار آنرا عوض کنم؟
    مثلا برای کد زیر چگونه در لیست پیاده سازی شود ؟
    if (Words_Of_Original[all_word_count - 1] == " ") {
    Words_Of_Original[all_word_count - 1] = ".";
    }

    که Words_Of_Original یک آرایه است

  12. #12

    نقل قول: آرایه global

    ببین تو چرا نمی گی که هدف کلیت چیه؟
    بگو می خوای دقیقاً چی کاری کنی تا بهترین راه رو بچه ها بگن.

  13. #13
    کاربر دائمی آواتار sirvan-me
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    استان البرز
    پست
    251

    نقل قول: آرایه global

    نقل قول نوشته شده توسط f_g1348 مشاهده تاپیک
    خوب دوست عزیز اگر از این روش استفاده کنم چطور می تونم به خانه مثلاً شماره 6 لیست دسترسی داشته باشم و مقدار آنرا عوض کنم؟
    مثلا برای کد زیر چگونه در لیست پیاده سازی شود ؟
    if (Words_Of_Original[all_word_count - 1] == " ") {
    Words_Of_Original[all_word_count - 1] = ".";
    }

    که Words_Of_Original یک آرایه است
    همونطوری که تو آرایه با اندیس به خونه های آرایه دسترسی داری ... ساده ترین راه دستیابی به عناصر لیست هم همونه ...

    textbox1.Text = List_Words[1].ToString();


    خب دیگه خودت به مثالی که زدی تبدیلش کن ...
    آخرین ویرایش به وسیله sirvan-me : دوشنبه 26 تیر 1391 در 16:29 عصر

  14. #14
    کاربر دائمی آواتار f_g1348
    تاریخ عضویت
    آبان 1387
    محل زندگی
    اهواز
    پست
    551

    نقل قول: آرایه global

    من الان دقیقاً برنامم را تشریح می کنم
    در برنامه یک textbox وجود داره که کاربر درون آن متن فارسی تایپ می کنه ( جمله که با نقطه از هم جدا میشوند ) حالا اهداف من در زیر آمده :

    ادغام چند جمله به اختیار کاربر ( بدین صورت که در برنامه کاربر عدد می دهد و به تعداد اون اعداد ، جملات با هم ادغام می شوند یعنی نقاط انتهایی هر جمله تا رسیدن به تعداد مطلوب حذف می شود )
    مثلاً کل متن ما 8 جمله دارد و کاربر عدد 2 را وارد می کند پس یکی در میان باید نقاط پیدا شده و حذف شوند
    برای این کار من گفتم آرایه ای تعریف کنم که کل متن را بصورت کلمه به کلمه در خود نگه دارد و سپس از ابتدا جستجو شود و وقتی به کاراکتر نقطه رسد یک شمارنده را افزایش داده و و باقیمانده تقسیم شمارندخ بر عدد ورودی کاربر اگر صفر شد نقطه رو بیخیال میشه و در غیر اینصورت نقطه را با فضای خالی پر می کنه
    حالا مشکل من اینجاست که در ابتدا ابعاد آرایه را ندارم و پس از ورود متن ابعاد مشخص میشود و من این آرایه را در تمام متد ها و زیربرنامه ها لازم دارم .
    وقتی از list استفاده می کنم نمی تونم یک خانه بخصوصش را پاک کنم و آرایه با طول متغییر هم مثل vb.net ندارد که با دستور redim بتوانم ابعاد آرایه را مشخص کنم .
    لطفاً من را راهنمایی بفرمایید

  15. #15
    کاربر دائمی آواتار sirvan-me
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    استان البرز
    پست
    251

    نقل قول: آرایه global

    وقتی از list استفاده می کنم نمی تونم یک خانه بخصوصش را پاک کنم و آرایه با طول متغییر هم مثل vb.net ندارد که با دستور redim بتوانم ابعاد آرایه را مشخص کنم .
    شما برای اینکه بتونی یکی از خونه های لیست رو پاک کنی :

    1 ) اگر بر حسب مقدار خونه بخوای اون رو پاک کنی از کد زیر استفاده کن :

    List_Words.Remove("Word");


    2 ) اگر بر حسب اندیس خونه می خوای خونه ای از لیست رو پاک کنی از کد زیر استفاده کن :

    List_Words.RemoveAt(9);


    3 ) اگر می خوای همه ی خونه هایی که حاوی یه مقدار خاصن پاک کنی هم از کد زیر استفاده کن :

    List_Words.RemoveAll(str => str == "Word");

  16. #16

    نقل قول: آرایه global

    فقط لیست رو به صورت سراسری تعریف میکنی
    List<string> sentences = new List<string>();
    میتونی کل محتوای لیست رو پاک کنی
    sentences.Clear();
    به این صورت هم میتونی مقداردهی کنی(با توجه به توضیحاتت)
    sentences = textBox1.Text.Split('.').Where(s => s != "" && s != null).ToList();
    به اینصورت هم میتونی یک خانه رو حذف کنی
    sentences.RemoveAt(اندیس);

  17. #17
    کاربر دائمی آواتار f_g1348
    تاریخ عضویت
    آبان 1387
    محل زندگی
    اهواز
    پست
    551

    نقل قول: آرایه global

    دوستان يه سوال
    وقتي محتواي يك خانه را پاك كردم ، مي خواهم محتواي داخلش فضاي خالي باشد (" ") آيا با پاك كردن مقدار داخلش كلاً آن خانه پاك نمي شود ؟

  18. #18
    کاربر دائمی آواتار sirvan-me
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    استان البرز
    پست
    251

    نقل قول: آرایه global

    اگر از تابع های Remove استفاده کنی ، کلا اطلاعات اون خونه حذف میشه . باید مقدار اون خونه رو set کنی .

  19. #19

    نقل قول: آرایه global

    با remove اون خانه از لیست حذف میشه. میتونی با اندیس مقدار تهی رو ست کنید
    sentences[اندیس] = "";

  20. #20
    کاربر دائمی آواتار f_g1348
    تاریخ عضویت
    آبان 1387
    محل زندگی
    اهواز
    پست
    551

    نقل قول: آرایه global

    نقل قول نوشته شده توسط sirvan-me مشاهده تاپیک
    سلام دوستمون راست میگه چرا از List ها استفاده نمی کنی ... بیرون متدت یه لیست به شکل زیر تعریف کن :
    List<string> List_Words = new List<string>();

    بعد تو متدت خروجی تابع Split رو تو این لیست بریز ... حالا تو هر متدی می تونی سایز لیستت رو فراخونی کنی . تغییر بدی یا مثل آرایه به محتویاتش دسترسی داشته باشی و ...
    List_Words.AddRange(txt_Orig.Text.Split(new char[] { ' ', '\n' }));


    توابع خیلی بیشتری هم نسبت به آرایه برای لیست تعریف شده .. خودت میتونی ببینی
    دوست عزیز من از کد شما استفاده کردم ولی پیغام خطای زیر را می دهد
    Error 1 Using the generic type 'System.Collections.Generic.List<T>' requires 1 type arguments F:\text segmentation in C#‎\segmentation2\segmentation2\Form1.cs 54 13 segmentation2

  21. #21
    کاربر دائمی آواتار sirvan-me
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    استان البرز
    پست
    251

    نقل قول: آرایه global

    نقل قول نوشته شده توسط f_g1348 مشاهده تاپیک
    دوست عزیز من از کد شما استفاده کردم ولی پیغام خطای زیر را می دهد
    Error 1 Using the generic type 'System.Collections.Generic.List<T>' requires 1 type arguments F:\text segmentation in C#‎‎‎‎‎‎‎\segmentation2\segmentation2\F orm1.cs 54 13 segmentation2

    من خودم کدی رو که بهتون دادم تست کردم . اصلا خطا نمیده .

    اینم برنامه ای که توش کدی که بهت دادم نوشتم ( یذره کاملتر )


    richTextBox1.Text = richTextBox1.Text.Replace(textBox1.Text.Trim(), "").Replace("  ", " ").Trim();


    برای اینکه فاصله های اضافی اول و آخر هم برداره تو قسمت Event کلیک Button2 کد بالا رو به جای قبلی بزن .
    آخرین ویرایش به وسیله sirvan-me : سه شنبه 09 دی 1393 در 19:44 عصر

  22. #22
    کاربر دائمی آواتار f_g1348
    تاریخ عضویت
    آبان 1387
    محل زندگی
    اهواز
    پست
    551

    نقل قول: آرایه global

    من که نفهمیدم مشکل من تو چیه ولی کد شما رو که کپی کردم کار کرد

تاپیک های مشابه

  1. سوال: می تونیم متغیر ها رو توی آرایه GLOBALS ذخیره کنیم؟
    نوشته شده توسط idocsidocs در بخش PHP
    پاسخ: 4
    آخرین پست: چهارشنبه 17 آذر 1389, 20:02 عصر
  2. ایجاد تغییرات در فایل Global.asax هنگام کار در وب ماتریکس
    نوشته شده توسط faramarz_s در بخش ASP.NET Web Forms
    پاسخ: 4
    آخرین پست: چهارشنبه 14 آبان 1382, 20:31 عصر
  3. تعریف آرایه ای از اشیا
    نوشته شده توسط tazekar در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 5
    آخرین پست: شنبه 03 آبان 1382, 07:30 صبح
  4. آرایه ها
    نوشته شده توسط Harry در بخش برنامه نویسی در Delphi
    پاسخ: 2
    آخرین پست: پنج شنبه 03 مهر 1382, 19:04 عصر
  5. پاسخ: 1
    آخرین پست: جمعه 05 اردیبهشت 1382, 13:32 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •