나는 내가 제어하는 하나의 마스터 문자열을 문자열 A라고 부릅니다. 그리고 나서 다른 제어 문자열이 아닌 문자열을 B 문자열이라고합니다. A에 들어 있던 모든 것을 포함해야합니다. B, 올바른 순서로.문자열 비교 및 복사 차이
다음은 B가 작동하는 방법입니다. 처음에는 새로운 텍스트가 위에서 아래로 나타납니다 (단어 문서를 작성하는 경우 일반적으로 텍스트가 나타납니다). 그런 다음 무작위 지점에서 랩핑하고 새 텍스트가 다시 맨 위부터 시작하여 이전에 있던 내용을 덮어 씁니다.
특정 바이트 수가 기록 된 후에 B가 랩핑되고 맨 처음 시작된 것이 아니라면 타이머를 사용하여 주어진 간격으로 전체 문자열을 복사 할 수있었습니다. 대신 B와 A를 위에서 아래로 비교하는 일종의 비교를 사용해야합니다. B와 A가 다른 바이트를 찾으면 B에서부터 끝까지 모든 것을 복사하여 A의 맨 아래에 씁니다.
작동이 불분명 할 경우 입력했는데 아래 예를 참고하십시오. 모든 코드 -이 작업을 수행하는 방법에 대한 예제는 크게 감사하겠습니다. 나는 그것을 해결하기 위해 커서 접근 방식을 사용하려고하지만 텍스트가 정상에 포장 할 때 파산 :
String B: abc
String A: abc
String B: abcde
String A: abcde
String B: fgh
String A: abcdefgh
String B: fghijk
String A: abcdefghijk
etc...
그냥 솔루션을 내 자신의 생각을 추가 할 수 있습니다. 비교 방법을 수행하는 방법을 잘 모르겠습니다. 나는 String을 살펴 봤다. 비교해 보라. 그러나 그것이 더 크든 작든간에 반환 만한다. 나는 수동으로 바이트 비교에 의해 바이트를 할 수있을 것 같아요,하지만 그것은 매우 비효율적 인 것처럼 보이는데, 특히 문자열이 매우 커질 때 특히 그렇습니다.
EDIT (설명) : 텍스트가 B에 나타나면가 전에 B에 나타난 그, 그것은 여전히 A에
편집을 포함해야한다 (설명 2) : 그냥 나는 분명합니다 문자열 B를 보유하는 프로세스를 제어 할 수 없기 때문에 정기적으로 타이머를 폴링하거나 (정말로 빠른 루프를 사용하여) 폴링해야합니다.
매그너스
알고리즘에 대한
글쎄, 나는 위의 문자열 B를 호출하는 것을 포함하여, 다른 프로세스의 메모리로부터 많은 것들을 읽는 코드의 수천 줄의 프로그램을 작성했다. 그것을 해결하기 위해 커서 접근법을 사용하려고했지만 텍스트가 맨 위에 올랐을 때 파손되었습니다. 비교 방법을 수행하는 방법을 잘 모르겠습니다. 나는 String을 살펴 봤다. 비교해 보라. 그러나 그것이 더 크든 작든간에 반환 만한다. 나는 수동으로 바이트 비교에 의해 바이트를 할 수있을 것 같아요,하지만 그것은 매우 비효율적 인 것처럼 보이는데, 특히 문자열이 매우 커질 때 특히 그렇습니다. – Anders
다음에 문자열이 변경되면 "flmno"가 반환됩니다. f를 무시해야합니까 (예 : 중복을 처리하는 방법)? – Default
B가 예전의 "abc"와 같이 이미 되었다면 어떻게 될까요? 그런 다음 "abc"를 A에 추가해야합니까, 아니면 이미 한 번 포함 되었습니까? 그러면 B가 "defg"가되면 어떻게 될까요? 즉, A의 "bcdef"는 B의 "bcd"와 "def"를 모두 포함합니까? 아니면 두 개의 다른 단어로 계산되어야합니까? – Kjartan