في سياق كتابة نص جيت هاب عن كيفية تعديل الأعمدة في سطر باستخدام نصوص Perl، يمكن تحقيق ذلك بسهولة باستخدام بعض الأكواد الفعّالة. يبدو أن لديك مصفوفتين، deleteColumn
و AddColumn
، حيث توفر الأولى الأعمدة التي يجب حذفها، والثانية تحتوي على المواقع التي يجب إضافة أعمدة فارغة فيها.
فيما يلي مثال على كيفية تحقيق ذلك بلغة Perl:
-
تغييرات محللات السياق في Django 1.1014/03/2024
-
تحسين تنفيذ ملفات Ruby على الويب14/04/2024
perl#!/usr/bin/perl
use strict;
use warnings;
# الأعمدة التي يجب حذفها
my @deleteColumn = (4, 7);
# المواقع التي يجب إضافة أعمدة فارغة فيها
my @AddColumn = (3, 5);
# السطر الأصلي
my $line = "1,2,3,5,9,7,8,12";
# تحويل السطر إلى مصفوفة باستخدام الفاصلة كفاصل
my @columns = split(',', $line);
# حذف الأعمدة
foreach my $column (@deleteColumn) {
splice(@columns, $column - 1, 1); # -1 لأن الفهرس يبدأ من صفر
}
# إضافة أعمدة فارغة
foreach my $column (@AddColumn) {
splice(@columns, $column - 1, 0, ''); # إضافة عمود فارغ
}
# إعادة تكوين السطر بعد التعديلات
my $modified_line = join(',', @columns);
# طباعة السطر المعدل
print $modified_line;
هذا السكريبت البسيط يقوم بتحديد الأعمدة التي يجب حذفها والمواقع التي يجب إضافة أعمدة فارغة فيها، ثم يقوم بتعديل السطر وطباعته. يمكنك دمج هذا الكود في جزء القراءة الخاص بك عند قراءة الملفات الضخمة.
المزيد من المعلومات
عندما تقوم بتطوير سكريبت Perl لتعديل الأعمدة في سطر محدد، يتطلب الأمر تحديد الأعمدة التي يجب حذفها وتلك التي يجب إضافتها. في حالتك، لديك مصفوفتين، واحدة تحتوي على أرقام الأعمدة التي يجب حذفها والأخرى تحتوي على مواقع الأعمدة التي يجب إضافتها.
لتحقيق هذا بشكل فعّال وفي خطوة واحدة، يمكنك استخدام لوحة التقطيع (slice) في لغة Perl. يمكنك استخدام دالة splice
لإزالة الأعمدة وإضافة الأعمدة الجديدة في نفس الوقت.
فيما يلي مثال على كيفية تحقيق ذلك في سياق السكريبت:
perluse strict;
use warnings;
# السطر الأصلي
my $line = "1,2,3,5,9,7,8,12";
# مصفوفة الأعمدة التي يجب حذفها
my @deleteColumns = (4, 7);
# مصفوفة الأعمدة التي يجب إضافتها
my @addColumns = (3, 5);
# حذف الأعمدة
foreach my $col (reverse @deleteColumns) {
splice(@{[split(/,/, $line)]}, $col-1, 1);
}
# إضافة الأعمدة
foreach my $col (@addColumns) {
splice(@{[split(/,/, $line)]}, $col-1, 0, "");
}
# السطر بعد التعديل
my $modifiedLine = join(",", @{[split(/,/, $line)]});
# طباعة النتيجة
print "$modifiedLine\n";
يعمل السكريبت على تحديد الأعمدة التي يجب حذفها وتلك التي يجب إضافتها، ثم يستخدم دالة splice
لتعديل السطر وفقًا للمتطلبات. يُطبع السطر المعدل في النهاية.