আরকিজিআইএস ডেস্কটপ ব্যবহার করে ফাইল জিওডাটাবেসে ক্ষেত্রগুলি (স্থায়ীভাবে) পুনঃক্রম হচ্ছে?


18

আর্কজিআইএস 10.0 ব্যবহার করে, কোনও ফাইল জিওডাটাবেজে ক্ষেত্রগুলি পুনরায় অর্ডার করা সম্ভব এবং ডাটাবেসটিতে অর্ডারটি স্থির থাকতে পারে?

আমরা এক্সএমএলে রফতানি করা, এবং ক্ষেত্রের ক্রম পরিবর্তন করার জন্য একটি পার্সার লেখার বিষয়টি বিবেচনা করেছি, তারপরে এক্সএমএল থেকে একটি নতুন ডাটাবেস তৈরি করব। এটি একটি শ্রমসাধ্য প্রক্রিয়া বলে মনে হচ্ছে।

এক্সেলটিতে বিদ্যমান ক্ষেত্রের সংজ্ঞাটি আমদানি করা, তাদের পুনরায় অর্ডার করা, সিএসভিতে রফতানি করা, তারপরে একটি নতুন জিওডাটাবেজে এই ক্ষেত্রগুলি তৈরি করতে পাইথন স্ক্রিপ্ট লিখুন Another আমরা স্ক্র্যাচ থেকে এটি লেখার আগে কি এর মতো স্ক্রিপ্টের অস্তিত্ব আছে?

দুর্ভাগ্যক্রমে আরকিজিআইএস ডায়াগ্রাম ফিল্ডের পুনঃ-অর্ডারকে সমর্থন করে বলে মনে হচ্ছে না।

এই প্রক্রিয়াটিকে সহজ করার জন্য আমরা কি কোনও স্ক্রিপ্ট বা হ্যাক ব্যবহার করতে পারি?


8
আশা করি আপনি মতামত.কার্গিস . com
ideaView?id=

আপনি আর্কজিআইএস ডায়াগ্রামারে ক্ষেত্রগুলি পুনঃক্রম করতে পারেন, কেবল ক্ষেত্র সংগ্রহের মধ্যে যান এবং ক্ষেত্রটি নির্বাচন করুন এবং উপরের / নীচের তীরগুলিতে আঘাত করুন।
blah238

@ blah238 আপনি যদি উত্তর হিসাবে এটি যোগ করতে পারেন তবে আমি তা গ্রহণ করব। এটি খুব ভালভাবে কাজ করে এবং এসরি দ্বারা আধা-সমর্থিত যেহেতু তাদের এক ছেলে এটি লিখেছিল
স্টিফেন লিড

1
এখানে ভিডিও বিক্ষোভের হয় - maps.esri.com/Diagrammer/reorderfields.htm
Dror হর গিল

উত্তর:


6

মন্তব্যে উল্লিখিত হিসাবে আপনি আর্কজিআইএস ডায়াগ্রামারের সাথে ক্ষেত্রগুলি পুনরায় অর্ডার করতে পারেন। আমি এই উত্তরে আরও সাধারণ ধাপে পদক্ষেপ পোস্ট করেছি: কোনও বৈশিষ্ট্য বর্গক্ষেত্রের দৈর্ঘ্যের সম্পত্তি কীভাবে আপডেট করবেন?


ধন্যবাদ। আর্কজিআইএস ডায়াগ্রামারটি একটি সামান্য কিছুটা অস্থির - এটি ঠিক ক্রাশ হয় না, তবে কখনও কখনও এটি বাড়িতে তৈরি বলে মনে হয়। তবে স্কিমা পরিবর্তন করার জন্য এটি সেরা বিকল্প হিসাবে মনে হচ্ছে।
স্টিফেন সীসা

এখন 10.0 পূর্ববর্তী কাজ হতে পারে। এটি আমার জন্য উইন 7 এক্স 64 এ আরকিজিআইএস 10.1 এর সাথে ঠিক আছে, তবে এটি যখন চালিত হয় ঠিক সময়ের সাথে সংকলন ত্রুটি এবং প্রস্থান করে।
ম্যাট উইলকি

1
এটি লক্ষ্য করা গুরুত্বপূর্ণ যে আর্কজিআইএস ডায়াগ্রাম আরকিজিস 10.3 বা তার বেশি এর সাথে কাজ করে না।
মানচিত্র ম্যান

7

ইন অপর এক প্রশ্নের উত্তর আমি বললাম এটি ব্যবহার করা সম্ভব সংক্ষিপ্ত পরিসংখ্যান PULLITEMS সমতুল্য (পুনর্বিন্যাস ক্ষেত্রের জন্য পুরাতন কথা) না। এই কৌশলটি কেবল টেবিলগুলিতে ভাল কাজ করে তবে এখন অন্য একটি স্ক্রিপ্ট পাওয়া যাচ্ছে যা জানায় যে এটি বৈশিষ্ট্য শ্রেণি এবং সারণী উভয় ক্ষেত্রেই কাজ করে।

আমিও সুপারিশ করবে উত্তর থেকে পুনরায় ক্রম ক্ষেত্র স্থায়ীভাবে ArcGIS ব্যবহার করুন ক্যোয়ারী ছক টুল? যা এই প্রশ্নের উত্তর @ ক্লেউইস'র দ্বারা অনুপ্রাণিত হয়েছিল।


6

ইটি জিওয়েজার্ডের ফ্রি সংস্করণ এটি করবে। বেসিক -> আকারগুলি বাছাই করুন। আমি এটি কেবল একটি ভি 10 ফাইল জিওডাটাবেজে পরীক্ষা করেছি এবং এটি কাজ করে। যদিও এটিতে একটি নতুন বৈশিষ্ট্য শ্রেণি তৈরি করতে হবে।


5

ডায়াগ্রামারের জন্য আপনার কাছে ভিজিও না থাকলে- অন্যান্য উত্তরগুলি এখানে যোগ দেয়। আমি আমার ক্ষেত্রে এটি ভাল কাজ করতে পেলাম:

  1. পুরো ডিবির জন্য স্কিমাটি রফতানি করে আরক্যাটেলগস (এক্সপোর্ট - এক্সএমএল) - আমি কেবল ডেটা রফতানি করিনি, কেবল স্কিমা
  2. এক্সএমএল ফর্ম্যাট করতে কিছু অনলাইন প্রেটি মুদ্রণ পরিষেবা ব্যবহার করুন একটি পাঠ্য সম্পাদকটিতে এক্সএমএল ফাইলটি খুলুন এবং আপনার পছন্দ মতো ক্ষেত্রগুলি পুনরায় অর্ডার করুন
  3. একটি নতুন ডাটাবেস তৈরি করতে স্কিমাটি পুনরায় আমদানি করুন
  4. উত্স হিসাবে মূল ডাটাবেস ব্যবহার করে ডেটা পুনরায় লোড করুন

আমি এটিকে মূল প্রশ্নে "শ্রমসাধ্য প্রক্রিয়া" হিসাবে প্রত্যাখাত করেছি - তবে আসলে আপনি যখন এটির মতো রাখেন তখন খুব খারাপ লাগে না;)
স্টিফেন লিড

4

ক্ষেত্রগুলি পুনরায় অর্ডার করতে আপনার স্তর ও সারণী প্রদর্শনের সরঞ্জামসেট থেকে মেকটবেলকিয়ারি চালানো দরকার। ডকুমেন্টেশন থেকে, ক্ষেত্র তালিকার ক্ষেত্রগুলির ক্রম ক্ষেত্রগুলি আউটপুট স্তর বা টেবিল দৃশ্যে প্রদর্শিত হবে তা নির্দেশ করে। এছাড়াও, যদি ক্ষেত্রের তালিকায় কোনও আকারের কলাম যুক্ত করা হয়, ফলাফলটি একটি স্তর; অন্যথায়, এটি একটি টেবিল দেখুন। এটি কোনও লাইসেন্স স্তরের সাথে উপলব্ধ।


আপনি যদি এটি পরীক্ষা করে দেখে থাকেন তবেই অবাক হচ্ছেন কারণ ক্ষেত্রগুলি পুনরায় অর্ডার করার জন্য মেক ক্যোয়ারী টেবিল সরঞ্জামের কোনও উপায় দেখতে পাচ্ছি না - এর সরঞ্জাম সংলাপটি আপনাকে ক্ষেত্রগুলি অন্তর্ভুক্ত করা হবে কিনা তা স্থির করতে পারে বলে ঠিক মনে হচ্ছে।
পলিজিও

হ্যাঁ, আমি এটি পাইথনের স্ক্রিপ্ট থেকে পরীক্ষা করেছি। সরঞ্জামটি একাধিক সারণী একত্রিত বা যোগদানের জন্য ডিজাইন করা হয়েছে বলে মনে হচ্ছে। তবে, আমি একটি একক বৈশিষ্ট্য বর্গ ইনপুট করে পুনরায় অর্ডারযুক্ত ক্ষেত্রগুলি সহ একটি নতুন টেবিল বা বৈশিষ্ট্য শ্রেণি তৈরি করতে সক্ষম।
ক্লিভিস

আমি অবশ্যই কিছু হারিয়ে যাচ্ছি তাই এখানে একটি নতুন প্রশ্ন পোস্ট করেছি gis.stackexchange.com/questions/32310/… - আপনি কি আমার জন্য সেখানকার পদক্ষেপগুলি বিশদভাবে বলতে পারেন, দয়া করে?
পলিজিও

আমি কেবল মেককিউয়ারি টেবিল নয় কপিফিটচার এবং কোডের কিছু ছোট সম্পাদনা ব্যবহার করে নতুন প্রশ্নের উত্তর দিয়েছি পাইথন উইন্ডোতে পাইথন স্নিপেট হিসাবে অনুলিপিটি ব্যবহার করে using
পলিজিও

4

সঙ্গে মার্জ টুল আপনি স্থায়ীভাবে সহজে পুনর্বিন্যাস ক্ষেত্র পারেন। এটি টেবিল এবং বৈশিষ্ট্য ক্লাসগুলির সাথে কাজ করে। পুনর্নির্মাণটি পাইথন স্ক্রিপ্টের মাধ্যমে এমনকি সরঞ্জাম ডায়ালগের মাধ্যমেও করা যেতে পারে (কোনও ক্ষেত্র সরিয়ে এবং ডায়ালগটিতে এটি পুনরায় যুক্ত করে)। যদিও ডায়ালগের মাধ্যমে পুনরায় অর্ডার করা একটি নিখুঁত পদ্ধতির নয়।

একবার মার্জ করার সরঞ্জামটি ব্যবহার করার পরামর্শ দেওয়া হয় এবং তারপরে পাইথন স্নিপেট হিসাবে অনুলিপিটি ব্যবহার করুন এবং তারপরে ম্যানুয়ালি ক্ষেত্রগুলির আদেশগুলি পরিবর্তন করুন এবং তারপরে পাইথন উইন্ডোতে পাইথন কোডটি আটকে দিন।

এখানে একটি অজগর স্ক্রিপ্ট যা ক্ষেত্রগুলি পুনরায় অর্ডার করতে মার্জ সরঞ্জামটি ব্যবহার করে ( এখান থেকে অনুলিপি করা হয়েছে )

import arcpy

def reorder_fields(table, out_table, field_order, add_missing=True):
    """ 
    Reorders fields in input featureclass/table
    :table:         input table (fc, table, layer, etc)
    :out_table:     output table (fc, table, layer, etc)
    :field_order:   order of fields (objectid, shape not necessary)
    :add_missing:   add missing fields to end if True (leave out if False)
    -> path to output table
    """
    existing_fields = arcpy.ListFields(table)
    existing_field_names = [field.name for field in existing_fields]

    existing_mapping = arcpy.FieldMappings()
    existing_mapping.addTable(table)

    new_mapping = arcpy.FieldMappings()

    def add_mapping(field_name):
        mapping_index = existing_mapping.findFieldMapIndex(field_name)

        # required fields (OBJECTID, etc) will not be in existing mappings
        # they are added automatically
        if mapping_index != -1:
            field_map = existing_mapping.fieldMappings[mapping_index]
            new_mapping.addFieldMap(field_map)

    # add user fields from field_order
    for field_name in field_order:
        if field_name not in existing_field_names:
            raise Exception("Field: {0} not in {1}".format(field_name, table))

        add_mapping(field_name)

    # add missing fields at end
    if add_missing:
        missing_fields = [f for f in existing_field_names if f not in field_order]
        for field_name in missing_fields:
            add_mapping(field_name)

    # use merge with single input just to use new field_mappings
    arcpy.Merge_management(table, out_table, new_mapping)
    return out_table

ব্যবহার:

new_field_order = ["field2", "field3", "field1"]
reorder_fields(in_fc, out_fc, new_field_order)

এটি টুল কথোপকথন থেকে ভালভাবে কাজ করছে বলে মনে হচ্ছে যেখানে আমি প্রথমে এমন একটি ক্ষেত্র মুছলাম যা আমি শেষের দিকে যেতে চেয়েছিলাম, একটি নতুন ক্ষেত্র যুক্ত করেছি এবং তারপরে ইনপুট ক্ষেত্র যুক্ত করেছি। তবে, আপনি যেমনটি বলেছিলেন, পাইথনটিতে এটি ব্যবহার করা যখন সরঞ্জামটির মাধ্যমে আরও জটিল পুনরায় অর্ডারের প্রয়োজন হয় তখন তার চেয়ে সহজ।
পলিজিও

3

এসরি থেকে এক্স-রে নামক একটি ফ্রি এক্সটেনশান রয়েছে যার মধ্যে পুনঃক্রমের ক্ষেত্রগুলিতে তৈরি একটি সরঞ্জাম রয়েছে। আমাদের জন্য দুর্দান্ত কাজ করেছে এবং ব্যবহার করা সহজ।

আর্কিটেলগলজের জন্য এক্স-রে অ্যাড-ইন আপনার জিওডাটাবেস ডিজাইন বিকাশ, পরিমার্জন এবং ডকুমেন্ট করতে ব্যবহৃত হতে পারে


জিআইএস স্ট্যাক এক্সচেঞ্জে আপনাকে স্বাগতম, এবং টিপসটির জন্য ধন্যবাদ। আপনার উত্তরটি স্ট্যাক এক্সচেঞ্জের মানের সাথে সামঞ্জস্য রেখে আমি পুনরায় ফর্ম্যাট করেছি - আমি পণ্যটির বিষয়ে একটি লিঙ্ক এবং একটি উদ্ধৃতি অন্তর্ভুক্ত করেছি এবং বহিরাগত তথ্য সরিয়েছি।
স্টিফেন সীসা

2

এখন পর্যন্ত সর্বাধিক দক্ষ পদ্ধতিটি আমি ক্ষেত্রগুলির নাম পরিবর্তন করতে, তাদের ডিফল্ট ক্রম পরিবর্তন করতে এবং অন্যান্য বেশ কয়েকটি জিনিস মাইক্রোসফ্ট অ্যাক্সেস ব্যবহার করতে দেখেছি:

  1. নতুন ব্যক্তিগত জিওডাটাবেস তৈরি করুন
  2. বৈশিষ্ট্য শ্রেণি বা টেবিলটিকে পি-জিডিবিতে টেনে আনুন
  3. অ্যাক্সেসে খুলুন এবং:
    • সমস্ত টেবিল শুরুর উপেক্ষা GDB_করে টেবিল ডিজাইন মোডে টেবিলগুলি খুলুন
    • নাম পরিবর্তন করুন, ক্রম পরিবর্তন করুন, নতুন যুক্ত করুন ইত্যাদি etc.
  4. আপনার আসল অপারেশনাল জিডিবিতে টানুন এবং ফিরে যান

মন্তব্য:

সর্বদা কারেন্ট ব্যাক আপ রাখুন। আপনি সরাসরি অভ্যন্তরীণ জিডিবি কাঠামোর সাথে বিশৃঙ্খলা করছেন এবং আপনি সহজেই ডিবিটিকে বিন্দুতে পরিবর্তন করে আপনার ডেটা ট্র্যাশ করতে পারেন আর্কজিআইএস কীভাবে এটি আর পড়তে হবে তা জানেন না।

আর্কজিআইএসের পাশে কিছু সংরক্ষিত কীওয়ার্ড রয়েছে যা ক্ষেত্রের নামের জন্য ব্যবহার করা যায় না। অ্যাক্সেস আনন্দের সাথে এই কীওয়ার্ডগুলির সাথে ক্ষেত্রগুলি তৈরি বা পুনরায় নামকরণ করবে, তবে আপনি যখন এগুলি ফিরিয়ে আনবেন তখন সেগুলি স্বয়ংক্রিয়ভাবে একটি আন্ডারস্কোর যুক্ত হবে। তাই Currentহয়ে যায় Current_। এছাড়াও আংশিকভাবে ওভারল্যাপিং অ্যাক্সেস সংরক্ষিত কীওয়ার্ডগুলি নোট করুন ।

ব্যক্তিগত জিডিবিতে 2 জিবি ফাইলের আকারের সীমা রয়েছে, তাই জিডিবির মধ্যে থাকা সমস্ত টেবিল এবং বৈশিষ্ট্য শ্রেণীর মোট আকারটি এর বেশি হতে পারে না।

এটি সর্বদা ছোট প্রকল্পগুলির জন্য ব্যক্তিগত জিডিবি ব্যবহার করার জন্য লোভনীয় হতে পারে (<2 জিবি)। না। পারফরম্যান্স অসাধারণ এবং অ্যাক্সেসের এসকিউএল সিনট্যাক্সে সূক্ষ্ম পার্থক্য রয়েছে যা লেবেল এক্সপ্রেশন, সংজ্ঞা প্রশ্নাবলী এবং অ-বহনযোগ্য make


অবশ্যই, এই পদ্ধতিটি আনুষ্ঠানিকভাবে অনুমোদিত নয় এবং কোনও কিছু ভুল হয়ে গেলে আপনি টেক সাপোর্টকে কল করতে পারবেন না;)
স্টিফেন লিড

2

একটি Esri কিভাবে করবেন: একটি অ্যাট্রিবিউট টেবিল সমাধানে ক্ষেত্রের নামের ক্রম পরিবর্তন করুন

এটি এক্সএমএল সম্পাদনা প্রয়োজন, কিন্তু একবার আপনি স্কিমা অধিকার পেয়ে গেলে আপনি ভাল।


2

এই পাইথন স্ক্রিপ্টটি এটির জন্য একটি "নালী-টেপ" পদ্ধতি। এটি 20 টি ক্ষেত্রের মধ্যে সীমাবদ্ধ তবে এটি সহজেই যুক্ত করা যেতে পারে তবে এটি আপনার ডেটাতে অনেকগুলি ক্ষেত্রের জন্য চালানোর অনুমতি দেয়।

স্ক্রিপ্টটি স্ক্রিপ্ট সরঞ্জাম হিসাবে চালানোর জন্য ডিজাইন করা হয়েছে, সুতরাং আপনাকে আর্কিগ্ল্যাটালগের মধ্যে প্যারামিটার সেটআপ করতে হবে।

প্যারামিটারগুলি নিম্নরূপ হওয়া উচিত:

  • ইনপুটএফসি - বৈশিষ্ট্য শ্রেণি
  • আউটপুট অবস্থান - কর্মক্ষেত্র
  • আউটপুট নাম - স্ট্রিং
  • ক্ষেত্র 1 - ক্ষেত্র
  • ক্ষেত্র 2 - ক্ষেত্র
  • ফিল্ড20-এ যাওয়ার সমস্ত উপায়

কোড:

import arcpy, os, sys
from arcpy import env

arcpy.env.overwriteOutput = True

inFC = arcpy.GetParameterAsText(0)
outLoc = arcpy.GetParameterAsText(1)
outName = arcpy.GetParameterAsText(2)
field1 = arcpy.GetParameterAsText(3)
field2 = arcpy.GetParameterAsText(4)
field3 = arcpy.GetParameterAsText(5)
field4 = arcpy.GetParameterAsText(6)
field5 = arcpy.GetParameterAsText(7)
field6 = arcpy.GetParameterAsText(8)
field7 = arcpy.GetParameterAsText(9)
field8 = arcpy.GetParameterAsText(10)
field9 = arcpy.GetParameterAsText(11)
field10 = arcpy.GetParameterAsText(12)
field11 = arcpy.GetParameterAsText(13)
field12 = arcpy.GetParameterAsText(14)
field13 = arcpy.GetParameterAsText(15)
field14 = arcpy.GetParameterAsText(16)
field15 = arcpy.GetParameterAsText(17)
field16 = arcpy.GetParameterAsText(18)
field17 = arcpy.GetParameterAsText(19)
field18 = arcpy.GetParameterAsText(20)
field19 = arcpy.GetParameterAsText(21)
field20 = arcpy.GetParameterAsText(22)

fieldList = ["SHAPE@"]

arcpy.AddMessage(" ")

arcpy.AddMessage("Appending field choices to new List ")

arcpy.AddMessage(" ")

if (field1 != ""):
    fieldList.append(field1)
if (field2 != ""):
    fieldList.append(field2)
if (field3 != ""):
    fieldList.append(field3)
if (field4 != ""):
    fieldList.append(field4)
if (field5 != ""):
    fieldList.append(field5)
if (field6 != ""):
    fieldList.append(field6)
if (field7 != ""):
    fieldList.append(field7)
if (field8 != ""):
    fieldList.append(field8)
if (field9 != ""):
    fieldList.append(field9)
if (field10 != ""):
    fieldList.append(field10)
if (field11 != ""):
    fieldList.append(field1)
if (field12 != ""):
    fieldList.append(field12)
if (field13 != ""):
    fieldList.append(field13)
if (field14 != ""):
    fieldList.append(field14)
if (field15 != ""):
    fieldList.append(field15)
if (field16 != ""):
    fieldList.append(field16)
if (field17 != ""):
    fieldList.append(field17)
if (field18 != ""):
    fieldList.append(field18)
if (field19 != ""):
    fieldList.append(field19)
if (field20 != ""):
    fieldList.append(field20)

arcpy.AddMessage(" ")

#arcpy.AddMessage(fieldList)

oldFieldList = arcpy.ListFields(inFC)

fieldTypes = []

numOfFields = len(fieldList)

fieldIndex = 1

reorderedFields = []

for fld in fieldList:
    for f in oldFieldList:
        if f.name == fld:
            arcpy.AddMessage(f.name)
            reorderedFields.append(f)
            break

arcpy.AddMessage(" ")

arcpy.AddMessage(reorderedFields)

desc = arcpy.Describe(inFC)
geoType = desc.shapeType.upper()
spatRef = arcpy.Describe(inFC).spatialReference

arcpy.CreateFeatureclass_management(outLoc, outName, geoType, "", "", "", spatRef)
newFeat = os.path.join(outLoc, outName)

for flds in reorderedFields:
    if (flds.type == "String"):
        fLength = flds.length
        arcpy.AddField_management(newFeat, flds.name, flds.type, "", "", str(fLength))
    else:
        arcpy.AddField_management(newFeat, flds.name, flds.type)

arcpy.AddMessage(" ")

arcpy.AddMessage(fieldList)

arcpy.AddMessage(" ")

arcpy.AddMessage("Features will be copied with new Schema...")

count = 0

with arcpy.da.SearchCursor(inFC, fieldList) as cursor:
    for row in cursor:
        insertCursor = arcpy.da.InsertCursor(newFeat, (fieldList))
        if (numOfFields == 21):
            insertCursor.insertRow((row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7], row[8], row[9], row[10], row[11], row[12], row[13], row[14], row[15], row[16], row[17], row[18], row[19], row[20]))
            arcpy.AddMessage(" ")
            arcpy.AddMessage("Index: " + str(count) + " -----> " + str(row[1]) + ', ' + str(row[2]) + ', ' + str(row[3]) + ', ' + str(row[4]) + ', ' + str(row[5]) + ', ' + str(row[6]) + ', ' + str(row[7]) + ', ' + str(row[8]) + ', ' + str(row[9]) + ', ' + str(row[10]) + ', ' + str(row[11]) + ', ' + str(row[12]) + ', ' + str(row[13]) + ', ' + str(row[14]) + ', ' + str(row[15]) + ', ' + str(row[16]) + ', ' + str(row[17]) + ', ' + str(row[18]) + ', ' + str(row[19]) + ', ' + str(row[20]))
            count += 1
        elif (numOfFields == 20):
            insertCursor.insertRow((row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7], row[8], row[9], row[10], row[11], row[12], row[13], row[14], row[15], row[16], row[17], row[18], row[19]))
            arcpy.AddMessage(" ")
            arcpy.AddMessage("Index: " + str(count) + " -----> " + str(row[1]) + ', ' + str(row[2]) + ', ' + str(row[3]) + ', ' + str(row[4]) + ', ' + str(row[5]) + ', ' + str(row[6]) + ', ' + str(row[7]) + ', ' + str(row[8]) + ', ' + str(row[9]) + ', ' + str(row[10]) + ', ' + str(row[11]) + ', ' + str(row[12]) + ', ' + str(row[13]) + ', ' + str(row[14]) + ', ' + str(row[15]) + ', ' + str(row[16]) + ', ' + str(row[17]) + ', ' + str(row[18]) + ', ' + str(row[19]))
            count += 1
        elif (numOfFields == 19):
            insertCursor.insertRow((row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7], row[8], row[9], row[10], row[11], row[12], row[13], row[14], row[15], row[16], row[17], row[18]))
            arcpy.AddMessage(" ")
            arcpy.AddMessage("Index: " + str(count) + " -----> " + str(row[1]) + ', ' + str(row[2]) + ', ' + str(row[3]) + ', ' + str(row[4]) + ', ' + str(row[5]) + ', ' + str(row[6]) + ', ' + str(row[7]) + ', ' + str(row[8]) + ', ' + str(row[9]) + ', ' + str(row[10]) + ', ' + str(row[11]) + ', ' + str(row[12]) + ', ' + str(row[13]) + ', ' + str(row[14]) + ', ' + str(row[15]) + ', ' + str(row[16]) + ', ' + str(row[17]) + ', ' + str(row[18]))
            count += 1
        elif (numOfFields == 18):
            insertCursor.insertRow((row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7], row[8], row[9], row[10], row[11], row[12], row[13], row[14], row[15], row[16], row[17]))
            arcpy.AddMessage(" ")
            arcpy.AddMessage("Index: " + str(count) + " -----> " + str(row[1]) + ', ' + str(row[2]) + ', ' + str(row[3]) + ', ' + str(row[4]) + ', ' + str(row[5]) + ', ' + str(row[6]) + ', ' + str(row[7]) + ', ' + str(row[8]) + ', ' + str(row[9]) + ', ' + str(row[10]) + ', ' + str(row[11]) + ', ' + str(row[12]) + ', ' + str(row[13]) + ', ' + str(row[14]) + ', ' + str(row[15]) + ', ' + str(row[16]) + ', ' + str(row[17]))
            count += 1
        elif (numOfFields == 17):
            insertCursor.insertRow((row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7], row[8], row[9], row[10], row[11], row[12], row[13], row[14], row[15], row[16]))
            arcpy.AddMessage(" ")
            arcpy.AddMessage("Index: " + str(count) + " -----> " + str(row[1]) + ', ' + str(row[2]) + ', ' + str(row[3]) + ', ' + str(row[4]) + ', ' + str(row[5]) + ', ' + str(row[6]) + ', ' + str(row[7]) + ', ' + str(row[8]) + ', ' + str(row[9]) + ', ' + str(row[10]) + ', ' + str(row[11]) + ', ' + str(row[12]) + ', ' + str(row[13]) + ', ' + str(row[14]) + ', ' + str(row[15]) + ', ' + str(row[16]))
            count += 1
        elif (numOfFields == 16):
            insertCursor.insertRow((row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7], row[8], row[9], row[10], row[11], row[12], row[13], row[14], row[15]))
            arcpy.AddMessage(" ")
            arcpy.AddMessage("Index: " + str(count) + " -----> " + str(row[1]) + ', ' + str(row[2]) + ', ' + str(row[3]) + ', ' + str(row[4]) + ', ' + str(row[5]) + ', ' + str(row[6]) + ', ' + str(row[7]) + ', ' + str(row[8]) + ', ' + str(row[9]) + ', ' + str(row[10]) + ', ' + str(row[11]) + ', ' + str(row[12]) + ', ' + str(row[13]) + ', ' + str(row[14]) + ', ' + str(row[15]))
            count += 1
        elif (numOfFields == 15):
            insertCursor.insertRow((row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7], row[8], row[9], row[10], row[11], row[12], row[13], row[14]))
            arcpy.AddMessage(" ")
            arcpy.AddMessage("Index: " + str(count) + " -----> " + str(row[1]) + ', ' + str(row[2]) + ', ' + str(row[3]) + ', ' + str(row[4]) + ', ' + str(row[5]) + ', ' + str(row[6]) + ', ' + str(row[7]) + ', ' + str(row[8]) + ', ' + str(row[9]) + ', ' + str(row[10]) + ', ' + str(row[11]) + ', ' + str(row[12]) + ', ' + str(row[13]) + ', ' + str(row[14]))
            count += 1
        elif (numOfFields == 14):
            insertCursor.insertRow((row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7], row[8], row[9], row[10], row[11], row[12], row[13]))
            arcpy.AddMessage(" ")
            arcpy.AddMessage("Index: " + str(count) + " -----> " + str(row[1]) + ', ' + str(row[2]) + ', ' + str(row[3]) + ', ' + str(row[4]) + ', ' + str(row[5]) + ', ' + str(row[6]) + ', ' + str(row[7]) + ', ' + str(row[8]) + ', ' + str(row[9]) + ', ' + str(row[10]) + ', ' + str(row[11]) + ', ' + str(row[12]) + ', ' + str(row[13]))
            count += 1
        elif (numOfFields == 13):
            insertCursor.insertRow((row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7], row[8], row[9], row[10], row[11], row[12]))
            arcpy.AddMessage(" ")
            arcpy.AddMessage("Index: " + str(count) + " -----> " + str(row[1]) + ', ' + str(row[2]) + ', ' + str(row[3]) + ', ' + str(row[4]) + ', ' + str(row[5]) + ', ' + str(row[6]) + ', ' + str(row[7]) + ', ' + str(row[8]) + ', ' + str(row[9]) + ', ' + str(row[10]) + ', ' + str(row[11]) + ', ' + str(row[12]))
            count += 1
        elif (numOfFields == 12):
            insertCursor.insertRow((row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7], row[8], row[9], row[10], row[11]))
            arcpy.AddMessage(" ")
            arcpy.AddMessage("Index: " + str(count) + " -----> " + str(row[1]) + ', ' + str(row[2]) + ', ' + str(row[3]) + ', ' + str(row[4]) + ', ' + str(row[5]) + ', ' + str(row[6]) + ', ' + str(row[7]) + ', ' + str(row[8]) + ', ' + str(row[9]) + ', ' + str(row[10]) + ', ' + str(row[11]))
            count += 1
        elif (numOfFields == 11):
            insertCursor.insertRow((row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7], row[8], row[9], row[10]))
            arcpy.AddMessage(" ")
            arcpy.AddMessage("Index: " + str(count) + " -----> " + str(row[1]) + ', ' + str(row[2]) + ', ' + str(row[3]) + ', ' + str(row[4]) + ', ' + str(row[5]) + ', ' + str(row[6]) + ', ' + str(row[7]) + ', ' + str(row[8]) + ', ' + str(row[9]) + ', ' + str(row[10]))
            count += 1
        elif (numOfFields == 10):
            insertCursor.insertRow((row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7], row[8], row[9]))
            arcpy.AddMessage(" ")
            arcpy.AddMessage("Index: " + str(count) + " -----> " + str(row[1]) + ', ' + str(row[2]) + ', ' + str(row[3]) + ', ' + str(row[4]) + ', ' + str(row[5]) + ', ' + str(row[6]) + ', ' + str(row[7]) + ', ' + str(row[8]) + ', ' + str(row[9]))
            count += 1
        elif (numOfFields == 9):
            insertCursor.insertRow((row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7], row[8]))
            arcpy.AddMessage(" ")
            arcpy.AddMessage("Index: " + str(count) + " -----> " + str(row[1]) + ', ' + str(row[2]) + ', ' + str(row[3]) + ', ' + str(row[4]) + ', ' + str(row[5]) + ', ' + str(row[6]) + ', ' + str(row[7]) + ', ' + str(row[8]))
            count += 1
        elif (numOfFields == 8):
            insertCursor.insertRow((row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7]))
            arcpy.AddMessage(" ")
            arcpy.AddMessage("Index: " + str(count) + " -----> " + str(row[1]) + ', ' + str(row[2]) + ', ' + str(row[3]) + ', ' + str(row[4]) + ', ' + str(row[5]) + ', ' + str(row[6]) + ', ' + str(row[7]))
            count += 1
        elif (numOfFields == 7):
            insertCursor.insertRow((row[0], row[1], row[2], row[3], row[4], row[5], row[6]))
            arcpy.AddMessage(" ")
            arcpy.AddMessage("Index: " + str(count) + " -----> " + str(row[1]) + ', ' + str(row[2]) + ', ' + str(row[3]) + ', ' + str(row[4]) + ', ' + str(row[5]) + ', ' + str(row[6]))
            count += 1
        elif (numOfFields == 6):
            insertCursor.insertRow((row[0], row[1], row[2], row[3], row[4], row[5]))
            arcpy.AddMessage(" ")
            arcpy.AddMessage("Index: " + str(count) + " -----> " + str(row[1]) + ', ' + str(row[2]) + ', ' + str(row[3]) + ', ' + str(row[4]) + ', ' + str(row[5]))
            count += 1
        elif (numOfFields == 5):
            insertCursor.insertRow((row[0], row[1], row[2], row[3], row[4]))
            arcpy.AddMessage(" ")
            arcpy.AddMessage("Index: " + str(count) + " -----> " + str(row[1]) + ', ' + str(row[2]) + ', ' + str(row[3]) + ', ' + str(row[4]))
            count += 1
        elif (numOfFields == 4):
            insertCursor.insertRow((row[0], row[1], row[2], row[3]))
            arcpy.AddMessage(" ")
            arcpy.AddMessage("Index: " + str(count) + " -----> " + str(row[1]) + ', ' + str(row[2]) + ', ' + str(row[3]))
            count += 1
        elif (numOfFields == 3):
            insertCursor.insertRow((row[0], row[1], row[2]))
            arcpy.AddMessage(" ")
            arcpy.AddMessage("Index: " + str(count) + " -----> " + str(row[1]) + ', ' + str(row[2]))
            count += 1
        elif (numOfFields == 2):
            insertCursor.insertRow((row[0], row[1]))
            arcpy.AddMessage(" ")
            arcpy.AddMessage("Index: " + str(count) + " -----> " + str(row[1]))
            count += 1

আমি বুঝতে পারি এটি এটি করার সবচেয়ে সুন্দর বা সবচেয়ে কার্যকর উপায় নয় তবে এটি আসলে বেশ সুন্দর কাজ করে এবং লিখতে প্রায় আধ ঘন্টা সময় নিয়েছিল। আমার যখন ক্ষেত্রগুলি পুনঃক্রম করতে হবে তখন আমি এটি সর্বদা ব্যবহার করি এবং এর জন্য ডায়াগ্রামার বা মাইক্রোসফ্ট অ্যাক্সেসের প্রয়োজন হয় না। অবশ্যই ক্ষেত্রের সর্বাধিক সংখ্যা একটি সমস্যা হতে পারে তবে আবার এটি স্ক্রিপ্টের মধ্যে স্বনির্ধারিত হতে পারে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.