Anlamsız bir ^ H ^ H ^ H ^ H ^ H ^ Hspaces


47

Bazı terminallerde, geri tuşuna basılması ^Hönceki karakteri silmek için kontrol kodunu oluşturur . Bu, düzenlemelerin komedi efektinden etkilendiği keskin bir deyime yol açtı :

Bu aptallığa karşı nazik olun ^ H ^ H ^ H ^ Hgentleman, şirket genel merkezinden ziyaret ediyor.

Bir veya daha fazla karakter içeren bir dize verildiğinde ^H, her biri üzerinde geri boşluk bırakmanın sonucunu çıkarın ^H. Giriş yalnızca yazdırılabilir karakterleri kullanır (ASCII 32-126) ve ^sadece olarak görünecektir ^H. Geriye kalanlar asla boş metin üzerinde gerçekleşmez.

Çıktı ortamının kontrol kodlarını, özellikle de geri alma kodunu desteklediğini varsaymayabilirsiniz \x08.

>> Horse^H^H^H^H^HCow
Cow

>> Be nice to this fool^H^H^H^Hgentleman, he's visiting from corporate HQ.
Be nice to this gentleman, he's visiting from corporate HQ.

>> 123^H45^H^H^H78^H
17

>> Digital Trauma^H^H^H^H^H^H^H^H^H^H^H^H^H^HMaria Tidal Tug^H^H^H^H^H^H^H^H^H^H^H^H^H^H^HDigital Trauma
Digital Trauma

Liderler Sıralaması

Burada bir Martin Dättner’in izniyle, bir dilde lider lider tablosu var .

Cevabınızın göründüğünden emin olmak için, lütfen aşağıdaki Markdown şablonunu kullanarak cevabınızı bir başlık ile başlatın:

# Language Name, N bytes

Gönderinizin Nbüyüklüğü nerede ? Puanınızı artırmak varsa, olabilir onları içinden vurarak, başlığa eski hesapları tutmak. Örneğin:

# Ruby, <s>104</s> <s>101</s> 96 bytes


4
AAA^HB^H^Hgeçerli?
Nathan Merrill

@NathanMerrill Evet ve sonuçlandı A.
xnor

3
Retina'nın burada iyi olacağından şüpheleniyorum .
Claudiu,

1
@Fatalize: "Boş metinlerde asla geri dönüş olmayacak."
Maltysen

16
@Maria Tidal Tug bana musallat olmak için geri dönüyor
Digital Trauma

Yanıtlar:


69

GNU sed, 11 bayt

:;s/.^H//;t

Test çıkışı:

$ echo "Horse^H^H^H^H^HCow
Be nice to this fool^H^H^H^Hgentleman, he's visiting from corporate HQ.
123^H45^H^H^H78^H
Digital Trauma^H^H^H^H^H^H^H^H^H^H^H^H^H^HMaria Tidal Tug^H^H^H^H^H^H^H^H^H^H^H^H^H^H^HDigital Trauma" | sed ':;s/.^H//;t'
Cow
Be nice to this gentleman, he's visiting from corporate HQ.
17
Digital Trauma
$ 

5
Bakın kim geldi! Bu Maria Gelgit Tug ^ H ^ H ^ H ^ H ^ H ^ H ^ H ^ H ^ H ^ H ^ H ^ H ^ H ^ H ^ HDigital Travma!
Alex A.

@AlexA. Şakayı özlüyor muyum?
user253751

@ immibis: Bkz. Digital Trauma'nın soru hakkındaki yorumu .
Alex A.

sed -r ':;s/(^|.)\^H//;t'- bu ekstra 6 bayt pahasına çalışır
aragaer

@aragaer Bu neden gerekli? OP " Boşluklarda asla boş metin olmayacak " diyor . Sanırım ^Hdizenin başlangıcı boş metin üzerinde bir geri dönüş.
Dijital Travma,

19

Pyth, 11 bayt

.U+PbZcz"^H

Gösteri.

.U+PbZcz"^H
               Implicit: z = input()
      cz"^H    z.split("^H")
.U             reduce, with the first element of the list as the initial value.
   Pb          Remove the last character of what we have so far.
  +  Z         And add on the next segment.
               Print implicitly.

17

Gema, 6 bayt

?#\^H=

Örnek çalışma:

bash-4.3$ gema -p '?#\^H=' <<< 'pizza is alright^H^H^H^H^H^Hwesome'
pizza is awesome

CW, çünkü aptal vs centilmen örneği çok uzun sürüyor. (Bir gün sonra öldürüldü. Belki tercümanda bir aksaklık var mı? Buradaki diğer tüm örnekler, saniye cinsinden işlenir) .


Dilin bağlantısı var mı? Github ile ilgili hızlı bir arama epeyce ortaya çıktı
Sp3000

Elbette. gema.sourceforge.net (BTW, Gema projesi 2003-10-27 tarihinde tescil edilmiştir, GitHub 2008-04-10 tarihinde başlatılmıştır. Bu bulunmaması için bir sebep olabilir.)
Manatwork

Özyineleme derinliğinin eşleşmeyen dizgenin uzunluğuna eşit olduğuna inanıyorum, çünkü \^Hbir seferde bir karakterle eşleşen , makinalar tekrar tekrar tekrar tekrarlanacaktır ?.
isaacg

15

C, 52 bayt

j;f(char*s){for(j=0;*s=s[j];s[j]==94?s--,j+=3:s++);}

fİşaretçiyi dizeye girdi olarak alan bir işlevi tanımlarız . İşlev çağrısından sonra, bu işaretçi değiştirilmiş bir dize içerecektir.

Basit bir test:

int main(int argc, char** argv) {
    char buf[300] = "Digital Trauma^H^H^H^H^H^H^H^H^H^H^H^H^H^HMaria Tidal Tug^H^H^H^H^H^H^H^H^H^H^H^H^H^H^HDigital Trauma";
    f(buf);
    printf(buf);
    return 0;
}

Yukarıdaki baskılar:

Digital Trauma

1
Bu gerçekten zekiydi. Fark ettim bir kaç şey: globals zaten sıfır olarak başlatıldı, bu yüzden döngü jiçinde init gerek yok for(tabii ki o zaman tek kullanımlık, ama bu konuda hiçbir şey göremiyorum :)). Ayrıca ödevi azalışla birleştirebilirsiniz: j;f(char*s){for(;s[j]==94?*s--=s[j],j+=3:s++);}(47 byte)
Cole Cameron


@undergroundmonorail dang, bunu kaçırıp kaçırmadığımı görmek için iki kez kontrol ediyordum. Hala golf kodlaması konusunda yeniyim ama bunu gelecek için hatırlayacağım :). Bilgi için teşekkürler!
Cole Cameron

1
@ColeCameron Bu, sıralanmamış bir değişiklik ve erişime (UB) sahip ve maalesef derleyicim / makinemde hemen EXC_BAD_ACCESS'e neden oluyor.
BrainSteel

1
@ Quentin Denedim, ama virgül s--, j+=3ve operatör önceliği nedeniyle doğru çalışmıyor.
BrainSteel

14

Haskell, 47 bayt

h(a,_:_:b)=f$init a++b;h(x,_)=x
f=h.span(/='^')

Bir fonksiyon tanımlar f :: String -> String. Nasıl çalışır:

    f "ab^Hc^Hd"
=== h ("ab", "^Hc^Hd")   (find ^H)
=== f ("a" ++ "c^Hd")    (backspace)
=== f "ac^Hd"            (join)
=== h ("ac", "^Hd")      (find ^H)
=== f ("a", "d")         (backspace)
=== f "ad"               (join)
=== h ("ad", "")         (find ^H)
=== "ad"                 (no ^H: base case)

1
Sana iki kasa değiştirerek bir bayt kurtarabilir miyiz hve yapıyor h(x,_)=xboş dize durum için.
Zgarb

12

CJam, 14 13 bayt

q"^H"/{W\ts}*

Nasıl çalışır

q                   e# Read the entire input
 "^H"/              e# Split it on occurrences of string "^H"
      {    }*       e# Reduce on the split array
       W\t          e# This is the tricky part. We know that if there are two parts that we
                    e# are reducing on, they must be separated by "^H". Which in turn means
                    e# that from the first part, last characters needs to be deleted
                    e# So we simply put the second part in place of the last character of the
                    e# first part.
          s         e# Doing the above makes it a mixed array of character and string.
                    e# So we convert it to a single string, ready to be served as first part
                    e# in next reduce iteration

GÜNCELLEME: jimmy23013 sayesinde 1 bayt kurtarıldı

Burada çevrimiçi deneyin


2
1 bayt kısa: W\ts.
jimmy23013,

11

Retina, 13 bayt

Retina

+`.\^H(.*)
$1

İki satır kendi dosyalarına gitmelidir ancak kodu -sbayrakla bir dosya olarak çalıştırabilirsiniz .

Her adımda .\^Hdizedeki ilk eşleşmeyi siliyoruz. +Silme gerçekleşene kadar bunu ( değiştirici ile birlikte ) tekrar ediyoruz .


Sadece bir merak: neden (.*)sadece değişmeden geri çekildiği görülüyor ki?
Manatwork

1
@manatwork Bu şekilde, ilk .\^Hadım sadece bir adımda yakalanır . Aksi halde ilk adımdan sonra abc^H^H^Hsonuçlanır ab^.
randomra

4
Henüz bir değiştirme limiti uygulamadığı için özür dilerim (ki buna benzer bir şeye izin verir +1`.\^H). ;)
Martin Ender

10

JavaScript ( ES6 ), 39 bayt

f=s=>(t=s.replace(/.\^H/,''))!=s?f(t):t

// TEST

Out=x=>O.innerHTML+=x+'\n'

Test=_=>(Out(I.value + "\n-> " + f(I.value)),I.value='')

;["Horse^H^H^H^H^HCow"
,"Be nice to this fool^H^H^H^Hgentleman, he's visiting from corporate HQ."
,"123^H45^H^H^H78^H"
,"Digital Trauma^H^H^H^H^H^H^H^H^H^H^H^H^H^HMaria Tidal Tug^H^H^H^H^H^H^H^H^H^H^H^H^H^H^HDigital Trauma"]
.forEach(t => Out(t + "\n-> " + f(t)))
#I { width:400px }
<pre id=O></pre>
<input id=I><button onclick='Test()'>-></button>


10

Perl, 20 16 15 bayt

(14 karakter kod + 1 karakter komut satırı seçeneği.)

s/.\^H//&&redo

Örnek çalışma:

bash-4.3$ perl -pe 's/.\^H//&&redo' <<< "Be nice to this fool^H^H^H^Hgentleman, he's visiting from corporate HQ."
Be nice to this gentleman, he's visiting from corporate HQ.

1
4 karakterden 1while s/.\^H//
Kevin Reid

Vaov! @KevinReid bu harika. Teşekkür ederim.
Manatwork

1
Bir tane daha:s/.\^H//&&redo
Dennis,

Teşekkürler, @Dennis. redoBir şekilde beceri setime giremedi. Bunu değiştirmek zorunda kalacak.
Manatwork

2
@ Dennis'in sürümünün yalnızca bir döngü veya { }blok içindeki tek ifade olması halinde (istenildiği gibi) çalışacağını unutmayın . (Bunun çalışmasının nedeni perl -p, -panahtarın kodunuzu otomatik olarak bir whiledöngü içine sarmasıdır.) Kevin'ın sürümü herhangi bir ayarda çalışır.
Ilmari Karonen

9

Julia, 58 42 41 bayt

Manatwork sayesinde 16 bayt, Glen O!

f(s)='^'s?f(replace(s,r".\^H","",1)):s

Bu, bir dizeyi kabul eden ve bir dize döndüren özyinelemeli bir işlev oluşturur.

Bu ^H, giriş içerdiği sırada bir seferde bir defa boş bir dizeyle değiştirilir ^.

Örnekler:

julia> f("123^H45^H^H^H78^H")
"17"

julia> f("pizza is alright^H^H^H^H^H^Hwesome")
"pizza is awesome"

Bu, Julia'yı ilk kez vahşi doğada gördüm. Güzel!
Ogaday

8

REGXY, 10 bayt

Regex ikamesi temelli bir dil olan REGXY'yi kullanır . ^ H ve ardından gelen karakterleri hiçbir şey olmadan değiştirir. İkinci satır daha sonra bir önceki satıra bir işaretçi olan yürütücüyü çalıştırır ve yerine geçenleri eşleşene kadar tekrar eder.

/.\^H//
//

Bu, yukarıdaki bağlantıdaki örnek yorumlayıcı ile doğru şekilde derlenir ve yürütülür, ancak çözüm, dil belirtiminin belirsizliğindeki bir varsayıma dayandığından, belki de biraz yanaklıdır. Spesifikasyon, her satırdaki ilk belirtecin (/ işaretinden önce) bir etiket gibi davrandığını, ancak boş bir etiket işaretçisinin, boş bir etiketle (veya başka bir deyişle, dosyadaki ilk komutu) göstereceğini varsaymaktadır. bu 'null' geçerli bir etikettir). Daha az arsız bir çözüm şöyle olurdu:

a/.\^H//
b//a

Bu 13 bayta eşittir.


7

Python 3, 53 bayt

o=""
for x in input().split("^H"):o=o[:-1]+x
print(o)

Ama şahsen ben bu asker versiyonunu daha çok seviyorum:

H=input().split("^H")
print(eval("("*~-len(H)+")[:-1]+".join(map(repr,H))))

İlginç olan şu ki

'B''a''c''k''h''a''n''d''e''d'[:-1][:-1][:-1][:-1][:-1][:-1]

aslında çalışır ve verir 'Back', bu yüzden o zaman ^H -> [:-1]başka bir karakterin haritasını çıkarmaya çalıştım , ama ne yazık ki daha sonra hiç a kullanmadan dizeleri alamazsınız ;c -> 'c'eval+

'B''a''c''k''h''a''n''d''e''d'[:-1][:-1][:-1][:-1][:-1][:-1]'s''p''a''c''e''s'

Heyy ... bu çok zarif.
Alex Van Liew

+=döngüde çalışıyor
CalculatorFeline

@CatsAreFluffy Öyle o=o[:-1]+xdeğilo=o+x
Sp3000

Oops, bunu özledim. o[:-2]=xİş gibi bir şey mi yapar?
CalculatorFeline

@CatsAreFluffy Şunlara atamazsınızstr
Sp3000

7

Haskell, 52 47 bayt

import Data.Lists
foldl1((++).init).splitOn"^H"

Kullanım örneği:

> map (foldl1((++).init).splitOn"^H") ["Horse^H^H^H^H^HCow", "123^H45^H^H^H78^H", "Digital Trauma^H^H^H^H^H^H^H^H^H^H^H^H^H^HMaria Tidal Tug^H^H^H^H^H^H^H^H^H^H^H^H^H^H^HDigital Trauma"]
["Cow","17","Digital Trauma"]

Nasıl çalışır:

                  splitOn"^H"     -- split on substring "^H", e.g "Horse^H^H^H^H^HCow" -> ["Horse","","","","","Cow"]
                 .                -- then
foldl1(         )                 -- fold from left by
            init                  --   first dropping the last char from the left argument
       (++).                      --   second concatenating left and right argument

6

Ruby, 27 24 20 bayt

(19 karakter kod + 1 karakter komut satırı seçeneği.)

$_=$`+$'while/.\^H/

Sayesinde:

  • Global değişkenleri kullanmanızı önermek için Ventero (-4 karakter)

Örnek çalışma:

bash-4.3$ ruby -pe '$_=$`+$'"'"'while/.\^H/' <<< "Be nice to this fool^H^H^H^Hgentleman, he's visiting from corporate HQ."
Be nice to this gentleman, he's visiting from corporate HQ.

+1 Bunu görene kadar Ruby'nin cevabını vereceğimi düşündüm. Bunun alacağı kadar küçük olduğuna eminim. Büyük kullanım []!
daniero,

Başlangıçta başka bir versiyon loop{$_[/.\^H/]=""}rescue""daha vardı : Bu, Ruby'nin istisnai durumun üstesinden gelme serinliğini gösterdiğinden daha iyi.
Manatwork

Haha, bu harika bir :)
daniero

1
Her zamankinden daha iyi geç: $_=$`+$'while~/.\^H/20 için ( regexp literal in conditionuyarıyı umursamıyorsanız, treni bile düşürebilirsiniz ).
Ventero

1
@manatwork: Teknik olarak tüm yakut sürümlerinde görünür>> 1.9 (koşullardaki regex ve string değişmezleri 1.8'den sonra kaldırılmıştır), sanırım rubyhala hala varsayılan 1.8 olanı irbkullanıyorsunuz.
Ventero

4

Python 2, 50

lambdaOrada bir saniye olması biraz garip , ancak şu ana kadarki en iyi Python gibi görünüyor.

lambda s:reduce(lambda a,b:a[:-1]+b,s.split('^H'))

3

Pyth - 19 bayt

Azaltma bununla gerçekten çok iyi çalışıyor ancak bir seferde sadece bir karakter yapıyor bu yüzden ^Hlinebreak ile değiştirmek için gerçek algo kadar neredeyse tüm karakterleri harcamak zorunda kaldım . Bunu yapmak için daha iyi bir yol arıyorum.

u?+GHnHbPGjbcz"^H"k

Burada çevrimiçi deneyin .


3

TeaScript , 7 bayt [Rekabetçi değil]

Bu zorluk gönderildikten sonra TeaScript yapıldığı için rekabet etmemek. Bu referans olarak burada.

xW/.\^H

Bu yeni TeaScript 3'ü kullanır ve karakterleri silmek için özyinelemeli yer değiştirir.


1
Bazı nedenlerden dolayı, bu ISO 8859 bağlantısından dolayı lider
panosunda

regerence? xD
kedi,

2

K5, 64 bayt

K gerçekten bu tür bir iş için tasarlanmamıştır ...

{[s]$[2>#s;s;`=t:*&{"^H"~2#x_s}'1+!-2+#s;s;,/2#2!|(0,t,3+t)_s]}/

2

golflua, 36 bayt

\f(s)@o!=s o=s;s=s:g(".^H","",1)$~s$

Örnek çalışma:

Lua 5.2.2  Copyright (C) 1994-2013 Lua.org, PUC-Rio
> \f(s)@o!=s o=s;s=s:g(".^H","",1)$~s$
> w(f("Be nice to this fool^H^H^H^Hgentleman, he's visiting from corporate HQ."))
Be nice to this gentleman, he's visiting from corporate HQ.

2

Javascript, 62 bayt

En kısa değil, ama iyi çalışıyor.

t=prompt();while(t.match(R=/.\^H/))t=t.replace(R,'');alert(t);

Bu muhtemelen çok kısaltılabilir!


1
En kısa olanı değil, işe yaramadı (test senaryolarından herhangi birini deneyin).
Regexp

@ edc65 Tahmininiz için teşekkürler. Bazı şeyler denedim ve çalıştılar. Bu yüzden böyle yazdım
Ismael Miguel

2

R, 54 52 bayt

f=function(s)ifelse(s==(r=sub(".\\^H","",s)),r,f(r))

Julia cevabımla aynı temel fikir . Bu, bir dizeyi kabul eden ve bir dize döndüren özyinelemeli bir işlev oluşturur. Girdi, ^Hçıkarılmış tek bir oluşumla kendisine eşitse , geri döndürün, aksi takdirde işlevi tekrar çağırın.

Şunları yapabilirsiniz çevrimiçi denemek !


2

ECMAScript 6, 57 bayt

s=>{while(~s.indexOf`^H`)s=s.replace(/.\^H/,'');return s}

Bu muhtemelen golf oynamaktadır, sadece muhtemelen değil bir yol düşünmeliyim


2
Ne dersiniz s=>{while(s!=(s=s.replace(/.\^H/,""));return s}?
LRN

Ya da, eğer whileve returnçok uzun, bu özyinelemeli olabilir:var f=s=>s==(s=s.replace(/.\^H/))?s:f(s)
LRN

lm yerine ikinci "" parametresini de eklemelisiniz. Sonra benim cevabım var :)
edc65

Doğru. Ve boş dize argümanı orada olmalı, yanlış sürümü kopyalamış olmalıyım :(
lrn

~s.indexOf`^H`olabilir/\^H/.test(s)
değil Charles Charles

2

Java, 78 77 bayt

String f(String a){while(!a.equals(a=a.replaceFirst(".\\^H","")));return a;}

1
Bir karakter kaydetmek için virgülden sonraki boşluğu kaldırabilirsiniz.
ProgramFOX

2

(Visual) FoxPro herhangi bir sürüm 80 bayt

PARA t
DO WHILE AT('^H',t)>0
t = STRT(t,SUBS(t,AT('^H',t)-1,3))
ENDDO
RETU t

Dize çeviriyi ^ H bularak ve bir karakter yedekleyerek boş bırak.


2

Julia, 41 39 bayt

s->foldl((t,v)->chop(t)v,split(s,"^H"))

Yaptığı şey sınırlayıcı olarak ^ H kullanmak ve ardından her dizedeki son karakteri kaldırmak, ardından son karakteri tekrar kaldırmadan önce bir sonraki dizgiyi birleştirmek. Diğer Julia cevaplarından farklı olarak, bu özyinelemeli bir fonksiyon değildir.

Not: İşlev adını tanımdan kaldırdım. Başlangıçta, deniyor f(s)=ziyade s->ve olarak kullandı f("AAA^HB^H^H")... ama "anonim" olmalı ve bunun adı olarak kendisini kullanmak izin vererek iki bayt biriktiriyorum. Bunu böyle kullanıyorsun:

(s->foldl((t,v)->chop(t)v,split(s,"^H")))("AAA^HB^H^H")

(ayrıca bir değişken atayabilirsiniz f=s->foldl((t,v)->chop(t)v,split(s,"^H")), sonra f("AAA^HB^H^H")çalışacaktır)



1

Python 2,74 + 2 = 76 Bayt

Şimdiye kadar birkaç yaklaşım denedim, şu ana kadar elde edebileceğim en iyisi bu.

n=input();o='';c=0
for l in n:d=l=='^';o=[o+l*(1-c),o[:-1]][d];c=d
print o

4
Bu 2 ekstra bayt nereden geliyor?
xnor

@xnor girişi, bunun çalışması için tırnak işaretleri içine alınmalıdır. Bunu yazıya koymayı unuttum.
Kade

1
Her zamanki konvansiyonun dize argümanlarının ücretsiz olarak tırnak içinde alınmasına izin vermek olduğunu düşünüyorum, ancak tam olarak emin değilim.
xnor

1

Kabakulak, 84 Bayt

R Z S T="",Y=$L(Z,"^H") F I=1:1:Y{S T=T_$P(Z,"^H",I) S:I<Y T=$E(T,1,$L(T)-1)} W !,T

Bu büyük olasılıkla bir işlev olarak daha kısa yapılabilir (1 byte hızlı testlerde kaydedebildim), ancak bir liner boyut gibi görünüyorum ... :-)

Diş telleri, en çok bilgiliğim olan Kabakulak Intersystems Cache lezzetinden geliyor.


1

Java - 123 bayt

Ben şahsen en çok hoşlandığım g---1kısmı seviyorum .

String f(char[] a){String b="";for(int g=-1;++g<a.length;b=(a[g++]=='^'?b.substring(0,b.length()-1):b+a[g---1]));return b;}

genişletilmiş (biraz):

  String f(char[] a) {
      String b = "";
      for (int g = -1;
           ++g < a.length;
           b = (a[g++]=='^' 
                ? b.substring(0, b.length() - 1) 
                : b + a[g---1])
      );
      return b;
  }

1

Toplu iş - 138 bayt

@!! 2>nul||cmd/q/v/c%0 %1&&exit/b
set s=%1&for /F %%a in ('"prompt $H&echo on&for %%b in (1)do rem"')do set D=%%a
echo %s:^H=!D! !D!%

İlk satır, uzun boyunca bir kaç bayt tasarruf etmenin bir yoludur @echo off&setLocal enableDelayedExpansion(bu, yankıyı kapatır ve merak ediyorsanız değişkenlerin gecikmeli olarak genişlemesini sağlar). Ben bunu izah Toplu İş Golfing için ipuçları .

İkinci satır, geri alma kontrol karakterini bir değişkene kaydetmek için temiz küçük bir numaradır. Oldukça sahte ve bunun için kredi alır gibi davranamıyorum. BT bir nevi açıkladı burada . Temel olarak bir backspace karakteri oluşturmak için komut istemini kullanır ve onu değişkende yakalar - bu durumda !D!.

Son satır daha sonra - ^Hile basit dize işlemlerini gerçekleştirir !D!<SPACE>!D!.

C:\>bsp.bat "testing^H^H^H test"
"test test"

Ne yazık ki "AAA^HB^H^H", üretmesi gereken - "A"bunun yerine ürettiği gibi durumlarla kırılıyor "A"B. Bu biraz kafa karıştırıcı. Batch string manipülasyonunun nasıl daha derinlemesine çalıştığını araştırmam gerekecek.

C:\>bsp.bat "AAA^HB^H^H"
"A"B

Buradaki bazı yardımcı insanlar sayesinde - artık sadece geri alma karakterini (0x08) kaydettiğimi ve böylece yalnızca karakterlerin üzerine yazdığımı fark ettim. Şimdi aşağıdakine benzer örneklerle çalışıyor:

C:\>bsp.bat "AAA^HB^H^H"
"A"
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.