Abap String İşlemleri
- 1
- 0
- 0
- 0
- 0
- 0
Merhaba bu yazımızda SAP Abap string işlemleri üzerine bir şeyler öğreneceğiZ. Bu işlemler ilerleyen süreçlerde her zaman işinize yarayacaktır.
CONCATENATE
Bu Abap’ta iki veya daha fazla değişkeni birleştirmek için kullanılır.
DATA: lv_ad(15) TYPE c VALUE 'Mustafa'. "(15) -> Max 15 karakterlik bir veri
DATA: lv_soyad(25) TYPE c VALUE 'ÖZKAN'. "(25) -> Max 25 karakterlik bir veri
DATA: lv_ad_soyad(40) TYPE c.
"SEPARATED BY ifadesi birleştirme yaparken kullanacağı ayracı belirtir.
"Kullanmazsak arada herhangi bir şey olmadan birleştirme yapar.
CONCATENATE lv_ad lv_soyad INTO lv_ad_soyad SEPARATED BY space.
WRITE: lv_ad.
WRITE /: lv_soyad.
WRITE /: lv_ad_soyad.
* Program Çıktısı:
*
* Mustafa
* ÖZKAN
* Mustafa ÖZKAN
CONDENSE
Bu Abap’ta değişkenlerin içerisinde bulunan boşlukları kaldırmak için kullanılır. Kelimeler arasında sadece bir boşluk bırakır.
DATA: lv_ad_soyad(40) TYPE c VALUE 'Mustafa ÖZKAN'.
WRITE : lv_ad_soyad.
CONDENSE lv_ad_soyad.
WRITE /: lv_ad_soyad.
"NO-GAPS ifadesi bütün boşlukları kaldırmayı sağlar.
CONDENSE lv_ad_soyad NO-GAPS.
WRITE /: lv_ad_soyad.
* Program Çıktısı:
*
* Mustafa ÖZKAN
* Mustafa ÖZKAN
* MustafaÖZKAN
REPLACE
Bu Abap’ta değişkenler içerisinde belirttiğimiz kelimeleri veya harfleri başka bir şey ile değiştirmek için kullanılır.
DATA: lv_ad_soyad(40) TYPE c VALUE 'Mustafa ÖZKAN'.
"Sadece ilk bulduğunu değiştirir.
REPLACE 'a' WITH 'e' INTO lv_ad_soyad.
WRITE : lv_ad_soyad.
"Bulduğu her şeyi değiştirir.
REPLACE ALL OCCURRENCES OF 'a' IN lv_ad_soyad WITH 'e'.
WRITE /: lv_ad_soyad.
* Program Çıktısı:
*
* Mustefa ÖZKAN
* Mustefe ÖZKAN
SEARCH
Bu Abap’ta değişkenler içerisinde arama yapmak için kullanılır. Eğer aradığımız değer bulunursa sistem değişkeni olan sy-subrc 0 olarak geri dönüş yapar. Aradığımız değerin indexi ise sy-fdpos değişkeninde tutulur.
DATA: lv_ad_soyad(40) TYPE c VALUE 'Mustafa ÖZKAN'.
SEARCH lv_ad_soyad FOR 'a'.
if sy-subrc eq 0.
write : sy-fdpos.
Endif.
*Program Çıktısı:
*
* 4
SHIFT
Bu Abap’ta bit bazında sola kaydırma yapar. Bazı değişkenlerin başında tipinden dolayı 0 olabilir. Bunları silmek için de kullanılır.
DATA: lv_data(10) TYPE c VALUE '0000001000'.
WRITE : lv_data.
SHIFT lv_data.
WRITE /: lv_data.
SHIFT lv_data LEFT DELETING LEADING '0'.
WRITE /: lv_data.
* Program Çıktısı:
*
* 0000001000
* 000001000
* 1000
SPLIT
Bir değişken içerisindeki değeri belirttiğimiz ayraca göre parçalara bölmeyi sağlar. Bu parçaları bir tabloda tutabiliriz.
DATA : lv_data TYPE string .
TYPES: BEGIN OF ty_string,
str(25) TYPE c,
END OF ty_string.
DATA lt_data TYPE TABLE OF ty_string.
DATA ls_data TYPE ty_string .
lv_data = 'Kocaeli Üniversitesi Bilişim Sistemleri Mühendisliği'.
SPLIT lv_data AT ' ' INTO TABLE lt_data .
LOOP AT lt_data INTO ls_data.
WRITE :/ ls_data-str.
ENDLOOP.
* Program Çıktısı:
*
* Kocaeli
* Üniversitesi
* Bilişim
* Sistemleri
* Mühendisliği
2 yorum
Güzel yazı olmus teknopati.net editorleri
Teşekkürler